GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo configurar la caché de Nginx en el servidor LEMP

Nginx es un servidor web gratuito de código abierto, sin mencionar uno de los servidores web más utilizados en el mundo. Se puede utilizar como proxy inverso, proxy de correo, equilibrador de carga y servidor de almacenamiento en caché. Nginx es altamente escalable y está especialmente diseñado para lograr el máximo rendimiento y estabilidad. Utiliza una arquitectura basada en eventos y maneja todas las solicitudes entrantes en un solo hilo.

Nginx viene con un módulo FastCGI que se puede usar para almacenar en caché el contenido dinámico servido desde el backend de PHP. No necesita configurar otras soluciones de almacenamiento en caché como Redis, Varnish, Memcache después de configurar Nginx con caché FastCGI.

En este tutorial, le mostraremos cómo configurar el caché Nginx FastCGI con LEMP en Ubuntu 18.04.

Requisitos

  • Un Ubuntu 18.04 VPS nuevo en Atlantic.Net Cloud Platform
  • Una contraseña de root configurada en su servidor

Paso 1:crear el servidor en la nube de Atlantic.Net

Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo Ubuntu 18.04 como sistema operativo, con al menos 1 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.

Una vez que haya iniciado sesión en su servidor Ubuntu 18.04, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.

apt-get update -y

Paso 2:instalar el servidor LEMP

Comencemos con la instalación de LEMP (Nginx, PHP, PHP-FPM) en su servidor.

apt-get install nginx php php-cli php-fpm -y

El comando anterior también instalará el servidor web Apache en su sistema, por lo que deberá detener y deshabilitar el servicio Apache.

systemctl stop apache2
systemctl disable apache2

A continuación, inicie el servicio Nginx y PHP-FPM con el siguiente comando:

systemctl start nginx
systemctl start php7.2-fpm

Una vez que haya terminado, puede continuar con el siguiente paso.

Paso 3:cree un sitio web de muestra

Primero, crea un directorio para tu sitio web con el siguiente comando:

mkdir /var/www/html/example.com

A continuación, cree un archivo info.php de muestra dentro del directorio de su sitio web:

nano /var/www/html/example.com/info.php

Agregue las siguientes líneas:

<?php phpinfo(); ?>

Guarde y cierre el archivo. Luego, cambia la propiedad de tu sitio web a www-data user:

chown -R www-data:www-data /var/www/html/example.com
chmod -R 755 /var/www/html/example.com

Una vez que haya terminado, puede continuar con el siguiente paso.

Paso 4:configurar Nginx con FastCGI Cache

A continuación, deberá crear un nuevo archivo de configuración de host virtual Nginx para servir su sitio web y habilitar el caché FastCGI.

nano /etc/nginx/sites-available/example.com.conf

Agregue las siguientes líneas:

# Enable FastCGI Support
fastcgi_cache_path /etc/nginx/cache levels=1:2 keys_zone=nginxcache:150m max_size=1g 
inactive=60m use_temp_path=off;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
add_header X-Cache $upstream_cache_status;

server {
listen 80;
root /var/www/html/example.com;
client_max_body_size 256M;
index info.php;
server_name example.com;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location = /favicon.ico { access_log off; log_not_found off; }

#Disable caching for login session, user cookie, POST request, query string, site map and feeds
set $skip_cache 0;
if ($request_method = POST) {
set $skip_cache 1;
}
if ($query_string != "") {
set $skip_cache 1;
}

# Enable caching for your website.
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index info.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 600;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
fastcgi_cache nginxcache;
fastcgi_cache_valid 200 301 302 60m;
fastcgi_cache_use_stale error timeout updating invalid_header http_500 http_503;
fastcgi_cache_min_uses 1;
fastcgi_cache_lock on;

}
}

Guarde y cierre el archivo cuando haya terminado, luego verifique si hay errores de sintaxis en Nginx con el siguiente comando:

nginx -t

Deberías obtener el siguiente resultado:

A continuación, habilite el archivo de host virtual de Nginx con el siguiente comando:

ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

Finalmente, vuelva a cargar el servicio Nginx para aplicar los cambios:

systemctl restart nginx

A continuación se muestra una breve explicación de cada directiva en el archivo de configuración anterior:

  • ruta_caché_fastcgi crea un caché FastCGI y especifica la ubicación del caché, el nombre de la zona de memoria (nginxcache) con tamaño (150 M), max_size (1 G) y define la clave para la búsqueda de caché.
  • añadir_encabezado se utiliza para validar si la solicitud se ha servido desde la memoria caché FastCGI o no.
  • cgi rápido especifica la ruta del socket php-fpm.
  • fastcgi_cache habilita el almacenamiento en caché, que hemos especificado usando la zona de memoria en la directiva fastcgi_cache_path.
  • fastcgi_cache_valid establece el tiempo de caché con el código de estado 200, 301, 302 se almacenará en caché durante 60 minutos.
  • fastcgi_cache_lock solo permite la primera solicitud a través del servidor PHP-FPM ascendente.

Paso 5:Probar la memoria caché Nginx FastCGI

En este punto, Nginx está instalado y configurado con compatibilidad con FastCGI Cache. Es hora de verificar si el almacenamiento en caché funciona o no.

Abra su navegador web, acceda a su servidor web Nginx utilizando la URL http://example.com y vuelva a cargar la página varias veces.

A continuación, abra su terminal y ejecute el siguiente comando para obtener el encabezado de respuesta http.

curl -I http://example.com

Deberías obtener el siguiente resultado:

HTTP/1.1 200 OK
Server: nginx/1.14.0 (Ubuntu)
Date: Fri, 24 Apr 2020 16:07:24 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Cache: HIT

Del resultado anterior, X-Cache:HIT indica que la respuesta se envió desde el caché.

Conclusión

¡Felicidades! Ha configurado correctamente Nginx con compatibilidad con FastCGI Cache. Después de habilitar el almacenamiento en caché, debería notar una gran mejora en el rendimiento porque las páginas se cargan sin tener que procesarlas con PHP. Pruebe FastCGI Cache en Nginx hoy con el servicio de alojamiento VPS de Atlantic.Net.


Linux
  1. Cómo redirigir HTTP a HTTPS en Nginx

  2. Cómo configurar un servidor LEMP en Debian 10 Buster

  3. Cómo configurar bloques de servidor Nginx en Ubuntu 18.04 LTS

  4. Cómo instalar LEMP en Ubuntu 16.04

  5. ¿Cómo configurar el servidor NTP en CentOS?

Cómo configurar NGINX en un servidor CentOS 7

Cómo configurar HAProxy en CentOS 8

Cómo configurar Nginx Cache en un servidor LAMP

Cómo instalar la pila LEMP en Rocky Linux 8

Cómo instalar el servidor LEMP en Oracle Linux 8

Cómo configurar un servidor NGINX RTMP para transmisión