Nginx FastCGI Cache aumenta el rendimiento de su sitio web al reducir la carga en su servidor Ubuntu. Es especialmente eficaz para contenido dinámico, ya que permite a Nginx servir contenido en caché directamente sin utilizar procesadores PHP. Esto acelera el tiempo de respuesta y reduce el uso de recursos. Estas son las características y beneficios clave de Nginx FastCGI Cache para su infraestructura web:
- Entrega de contenido eficiente: Nginx FastCGI Cache almacena la salida de contenido dinámico, lo que permite un acceso y una distribución más rápidos.
- Carga reducida del servidor: Servir contenido en caché minimiza la cantidad de llamadas PHP, aligerando la carga del servidor.
- Escalabilidad: Nginx FastCGI Cache ayuda a gestionar el aumento del tráfico sin comprometer la velocidad a medida que crece su sitio web.
- Almacenamiento en caché personalizable: Esta opción ofrece flexibilidad para configurar las condiciones de caducidad, omisión y actualización de la caché para satisfacer sus necesidades.
- Experiencia de usuario mejorada: Los tiempos de carga más rápidos del sitio web mejoran la experiencia del usuario, lo que impacta positivamente en la retención de visitantes y en las clasificaciones SEO.
- Optimización de recursos: Optimiza la utilización de los recursos del servidor, lo que lleva a un manejo más eficiente de las solicitudes simultáneas.
- Fácil depuración: Proporciona mecanismos sencillos para depurar y validar el contenido almacenado en caché, lo que garantiza un funcionamiento sin problemas.
- Compatibilidad: Funciona a la perfección con plataformas CMS populares, mejorando su rendimiento sin una configuración extensa.
A medida que avanzamos en los procedimientos técnicos, tenga en cuenta que implementar Nginx FastCGI Cache es una forma estratégica de mejorar la eficiencia de su sitio y la satisfacción del usuario. Comencemos a mejorar el rendimiento de su sitio web con Nginx FastCGI Cache.
Configurar la caché Nginx FastCGI
Edite el archivo de configuración de Nginx para FastCGI Cache
Abra el archivo de configuración
Primero, necesitas abrir el nginx.conf
archivo. Usaremos el editor de texto nano, pero usted puede usar cualquier editor de texto con el que se sienta cómodo. Ingrese este comando:
sudo nano /etc/nginx/nginx.conf
Configurar los parámetros FastCGI
Dentro del archivo, ubique el bloque HTTP y agregue las siguientes líneas:
fastcgi_cache_path /var/nginx/fastcgi_cache levels=1:2 keys_zone=fcgicache:150m max_size=20g inactive=60m use_temp_path=off;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
Después de ingresar las líneas, presione CTRL + O
, tipo Y
y luego presione CTRL + X
salir.
Comprender los parámetros FastCGI
fastcgi_cache_path
: Este parámetro establece la ubicación para almacenar el caché FastCGI (/var/nginx/fastcgi_cache
). Es esencial ya que dicta dónde residirá el contenido almacenado en caché.levels=1:2
: Esto crea una jerarquía de directorios de dos niveles bajo su ubicación de caché. Este diseño ayuda a distribuir archivos en dos directorios, lo que, a su vez, reduce el riesgo de cuellos de botella de E/S de disco.keys_zone
: Especifica el nombre de la zona de memoria compartida (fcgicache
) y su tamaño (150M
). La zona de memoria compartida es crucial para almacenar claves de caché y metadatos.max_size
: Esto define el tamaño máximo de la caché (en este ejemplo,20GB
). Cuando se alcance este límite, los archivos más antiguos se eliminarán para dejar espacio para los nuevos.inactive
: Esto especifica el tiempo después del cual los datos a los que no se ha accedido se eliminarán de la caché. En este ejemplo, está configurado en 60 minutos.use_temp_path
: Estableciendo esto enoff
Le indica a Nginx que escriba archivos directamente en la carpeta de caché especificada, evitando el uso de un área de almacenamiento temporal.fastcgi_cache_key
: Se utiliza para definir la clave para la búsqueda de caché. Nginx crea un hash MD5 de esta clave para usarlo como nombre de los archivos de caché.
Configure el bloque del servidor Nginx para FastCGI Cache
Editar archivo de bloqueo del servidor
A continuación, debe editar el archivo de bloqueo de su servidor. Para este ejemplo, asumiremos que el archivo se llama example.com.conf
. Ábrelo con el siguiente comando:
sudo nano /etc/nginx/sites-available/example.com.conf
Insertar directivas de caché FastCGI
Suponiendo que tiene LEMP instalado, inserte las siguientes líneas dentro del bloque de ubicación para archivos PHP:
fastcgi_cache fcgicache;
fastcgi_cache_valid 200 60m;
fastcgi_cache_use_stale error timeout updating invalid_header http_500 http_503;
fastcgi_cache_min_uses 1;
fastcgi_cache_lock on;
add_header X-FastCGI-Cache $upstream_cache_status;
Comprender las directivas de caché FastCGI
fastcgi_cache
: habilita el almacenamiento en caché y especifica la zona de memoria compartida que se definió anteriormente.fastcgi_cache_valid
: define la duración de la caché para códigos de estado HTTP específicos.fastcgi_cache_use_stale
: establece las condiciones bajo las cuales Nginx puede usar una respuesta almacenada en caché obsoleta.fastcgi_cache_min_uses
: especifica con qué frecuencia se debe solicitar una respuesta antes de que se almacene en caché.fastcgi_cache_lock
: Garantiza que solo una solicitud a la vez complete un nuevo elemento de caché, evitando una "estampida de caché".add_header
: Agrega un encabezado personalizado (X-FastCGI-Cache
) a la respuesta HTTP, lo que indica si la respuesta se entregó desde la memoria caché.
Configurar la purga de caché FastCGI en Nginx
Configurar la purga de caché
La purga de caché le permite eliminar contenido del caché antes de que caduque. Para configurar la purga de caché, cree una directiva de purga de caché insertando las siguientes líneas en el archivo de bloque de su servidor:
location ~ /purge(/.*) {
# Uncomment the following two lines to allow purge only from the webserver
allow 127.0.0.1;
deny all;
fastcgi_cache_purge fcgicache "$scheme$request_method$host$1";
}
Prensa CTRL + O
, tipo Y
y luego presione CTRL + X
para salir del editor de texto.
Enfoque alternativo para problemas de purga de caché
Si tiene problemas con la purga de caché, puede ajustar el tiempo de caducidad de la caché. Para sitios web con tráfico medio a alto, suele ser más eficiente establecer una tasa de vencimiento más baja, como 2 horas inactivas y 4 horas para el vencimiento total.
Pruebe y reinicie el servidor Nginx
Pruebe la configuración
Es fundamental validar la configuración de Nginx para evitar errores de sintaxis o malas configuraciones. Utilice el siguiente comando:
sudo nginx -t
Debería ver el siguiente resultado si todo está correcto:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Reiniciar el servidor Nginx
Finalmente, reinicie el servidor Nginx para aplicar los cambios que ha realizado:
sudo systemctl restart nginx
Crear y optimizar el directorio de caché Nginx FastCGI
Crear directorio de caché FastCGI
Ahora creemos el directorio donde Nginx almacenará los archivos de caché. Esta ruta se especificó anteriormente en el nginx.conf
archivo:
sudo mkdir -p /var/nginx/fastcgi_cache
Optimice el directorio de caché con tmpfs (opcional)
Si su sistema tiene suficiente RAM, puede optar por utilizar tmpfs
para almacenar el caché en la memoria. Esto puede dar como resultado tiempos de acceso más rápidos en comparación con el almacenamiento en disco. Sin embargo, tenga cuidado, ya que el almacenamiento en la RAM puede consumir importantes recursos de memoria. Así es como puedes montar el directorio de caché como tmpfs
:
Editar /etc/fstab
archivo:
sudo nano /etc/fstab
Agregue la siguiente línea al final del archivo:
tmpfs /var/nginx/fastcgi_cache tmpfs defaults,size=512M 0 0
Esto asigna 512 MB de RAM para el caché. Puede ajustar el tamaño en consecuencia según los recursos de su sistema.
Monte el tmpfs
:
sudo mount -a
Esta configuración garantiza que la caché FastCGI se almacene en la memoria, lo que ofrece un rendimiento más rápido a expensas de la utilización de la RAM.
Validar la funcionalidad de caché Nginx FastCGI
Pruebe FastCGI Cache con curl
Puede validar que FastCGI Cache esté funcionando correctamente utilizando el curl
dominio. Dependiendo de la configuración de su caché, es posible que necesite ejecutar el comando varias veces antes de ver un acierto en la caché:
curl -I http://www.your-domain.com
Si no tienes curl
instalado, puedes instalarlo con:
sudo apt install curl -y
En la salida, busque el X-FastCGI-Cache: HIT
encabezamiento:
~$ curl -I https://www.example.com/
HTTP/1.1 200 OK
...
X-FastCGI-Cache: HIT
...
Esto indica que la solicitud se atendió desde la memoria caché.
Configurar exclusiones de caché
Los elementos del sitio web, como las páginas de administración de WordPress, las secciones de comentarios y los mapas del sitio, no deben almacenarse en caché. Para configurar Nginx para que no los almacene en caché, agregue el siguiente código encima del location (~\.php$)
línea en el archivo de bloqueo de su servidor:
# Cache by default
set $skip_cache 0;
# Don't cache URIs containing the following
if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-..php|^/feed/|/tag/./feed/|index.php|/.sitemap..(xml|xsl)") {
set $skip_cache 1;
}
# Don't cache for logged-in users or comment authors
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
set $skip_cache 1;
}
# POST requests and URIs with a query string should bypass the cache
if ($request_method = POST) {
set $skip_cache 1;
}
if ($query_string != "") {
set $skip_cache 1;
}
Depuración de exclusiones de caché (opcional)
Si desea agregar notas con fines de depuración, puede incluir una nota personalizada debajo de cada set $skip_cache 1;
declaración como esta:
set $skip_reason "your custom note";
Esto puede resultar útil para comprender por qué determinado contenido no se almacena en caché durante la resolución de problemas.
Después de realizar estas configuraciones, asegúrese de probar la configuración y reiniciar Nginx:
sudo nginx -t
sudo systemctl restart nginx
Mejores prácticas y consideraciones con Nginx FastCGI Cache
Si bien el almacenamiento en caché FastCGI puede ofrecer importantes beneficios de rendimiento, es esencial garantizar que la configuración esté optimizada para su caso de uso específico y los recursos del servidor:
- Evalúa la cantidad de RAM disponible antes de optar por
tmpfs
para almacenamiento en caché. Asegúrese de que su servidor tenga suficiente memoria para otros procesos críticos. - Adapte las exclusiones de caché para adaptarlas a su aplicación. Los ejemplos proporcionados son específicamente para WordPress, pero es posible que necesite exclusiones diferentes para otros tipos de aplicaciones.
- Supervise periódicamente el uso y el rendimiento de la caché. Si la caché consume demasiado espacio en disco o no mejora el rendimiento como se esperaba, considere ajustar la ruta, el tamaño o la configuración de la caché en consecuencia.
Conclusión
¡Bueno, ahí lo tienes! Hemos seguido los pasos para instalar Nginx FastCGI Cache en su servidor Ubuntu, ofreciendo un aumento en el rendimiento de su sitio web al manejar eficientemente el contenido dinámico. Recuerde, mantener la configuración de su caché para satisfacer las necesidades de su sitio es clave para maximizar los beneficios. No evites modificar la configuración para encontrar ese punto ideal. Ya sea que sea un profesional experimentado o nuevo en la administración de servidores, esperamos que esta guía le haya resultado útil para optimizar su presencia en la web. Manténgalo simple, sea consistente y ¡por una experiencia de sitio web más rápida y fluida para usted y sus visitantes!