GNU/Linux >> Tutoriales Linux >  >> Linux

Filtre y optimice las solicitudes de archivos estáticos con NGINX en Ubuntu 18.04

NGINX es un servidor web de alto rendimiento utilizado especialmente para gestionar archivos estáticos y como proxy inverso, pero que, gracias a su versatilidad, puede ser explotado en cualquier tipo de situación.

En esta guía, aprenderá cómo filtrar y optimizar las solicitudes de archivos estáticos con NGINX para aumentar el rendimiento de su sitio web y reducir la carga del servidor, usando algunos trucos, como habilitar la compresión Gzip, cambiar el número de procesos/conexiones o el tamaño de los búferes.

Primero, conéctese a su servidor a través de una conexión SSH. Si aún no lo ha hecho, se recomienda seguir nuestra guía para conectarse de forma segura con SSH. En caso de un servidor local, vaya al siguiente paso y abra la terminal de su servidor.

Modificación de los Parámetros de Configuración

Abra el archivo de configuración de NGINX usando un editor, como nano o vi. Para este ejemplo, se utilizó nano.

$ sudo nano /etc/nginx/nginx.conf

Habilitación de la compresión Gzip

Al habilitar la compresión Gzip, se puede reducir la cantidad de datos que se transmiten. Tenga cuidado de no aumentar demasiado el nivel de compresión de Gzip, ya que puede afectar el rendimiento de la CPU.

gzip             on;

gzip_comp_level  2;

gzip_min_length  1000;

gzip_proxied     expired no-cache no-store private auth;

gzip_types       text/plain application/x-javascript text/xml text/css application/xml;

Configuración del número de procesos y conexiones

El parámetro 'worker_processes' se refiere a la cantidad de procesos instanciados por NGINX después de iniciarlo. La cantidad de procesos normalmente debe ser igual a la cantidad de núcleos en el servidor. Por ejemplo, si el servidor tiene un procesador con 4 núcleos, se debe configurar el parámetro con el valor 4, de la siguiente manera:

worker_processes 4;

El parámetro worker_connections se refiere a la cantidad de clientes que serán atendidos por un solo proceso. Para establecer un valor óptimo para la configuración, todo lo que tiene que hacer es verificar los límites de sus núcleos con el comando:

$ ulimit -n

El resultado será el número máximo de conexiones por proceso. Luego, para configurarlo:

worker_processes 1024;

Cambiar el tamaño de los búferes

Si el tamaño de los búferes es demasiado bajo, NGINX se verá obligado a crear archivos temporales, lo que provocará numerosas operaciones de disco. Para evitarlo, establezca correctamente el tamaño de los búferes.

client_max_body_size:indica el tamaño máximo de la solicitud del cliente

client_body_buffer_size:se refiere al tamaño del búfer para solicitudes POST

client_header_buffer_size:se refiere al tamaño del búfer relativo al encabezado de solicitud del cliente

Al modificar estos parámetros con los siguientes valores, se debe obtener un buen resultado:

client_max_body_size 8m;

client_body_buffer_size 10K;

client_header_buffer_size 1k;

Cambiar la duración del caché

Para administrar la duración del caché de archivos estáticos, todo lo que tiene que hacer es especificar las extensiones de archivo y su duración de esta manera:

location ~*.(jpg|jpeg|png|gif|ico|css|js)$ {

expires 365d;

}

donde con 365d se especifica que el caché para sus extensiones durará 365 días.

Reducción de tiempos de espera

Los parámetros client_body_timeout y client_header_timeout respectivamente indican el tiempo de espera para el cuerpo o encabezado de la solicitud. Si el servidor no recibe el cuerpo o el encabezado dentro de este tiempo, \ la conexión finaliza con un error de tiempo de espera.

El parámetro send_timeout indica el tiempo máximo entre dos operaciones de lectura. si se supera este tiempo, NGINX finalizará la conexión con el cliente.

En cambio, el parámetro keepalive_timeout se refiere a la duración máxima de una conexión Keep-Alive antes de terminarla.

Al configurar estos valores de la siguiente manera, se debe obtener un buen resultado:

client_body_timeout 12;

client_header_timeout 12;

send_timeout 10;

keepalive_timeout 15;

Inhabilitación de registros

NGINX supervisa cada solicitud realizada en un archivo de registro. Para deshabilitar esta función, todo lo que tiene que hacer es cambiar el parámetro access_log de la siguiente manera:

access_log off;

Aplicando cambios

Reinicie el servicio NGINX para implementar los cambios:

$ sudo service nginx restart

Linux
  1. Cómo instalar phpMyAdmin con HHVM, Nginx y MariaDB en un Ubuntu 14.04 VPS

  2. Instale Redmine en un servidor Ubuntu 14.04 con MariaDB, Puma y Nginx.

  3. Instalar WordPress con Varnish y Nginx en Ubuntu

  4. Cómo configurar una aplicación simple de nodejs con nginx y pm2 en el servidor ubuntu

  5. Cómo optimizar el almacenamiento en caché de archivos estáticos de Apache en Ubuntu 18.04

Cómo instalar Nginx en Ubuntu 14.04

Cómo instalar Nginx, MySQL y PHP (LEMP) en un servidor Ubuntu 15.04

Cómo instalar NGINX en Ubuntu 20.04

Cómo agregar compatibilidad con PHP-FPM en el servidor web Apache y Nginx en Ubuntu 18.04

Cómo configurar un servidor Seafile con Nginx en Ubuntu 18.04

Instale y configure Varnish Cache con Nginx Web Server en Ubuntu 18.04