Cómo configurar la caché Nginx FastCGI en Ubuntu

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 Yy 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 en off 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 Yy 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!

Joshua James
Sígueme
Últimas entradas de Joshua James (ver todo)

Deja un comentario