Ayúdanos a seguir proporcionándote tutoriales gratuitos y de calidad desactivando tu bloqueador de anuncios. suscriptores a nuestro sitio.

Cómo optimizar la configuración de Nginx en Debian 10

27 feb 2021 3 min di lettura
Cómo optimizar la configuración de Nginx en Debian 10
Tabla de contenidos

Introducción

Si su intención es optimizar la configuración de Nginx en un servidor Debian 10 remoto, siga leyendo; de lo contrario, si desea optimizar la configuración de Nginx en su computadora local, omita el primer párrafo "Conectarse al servidor" y lea el siguiente.

Conexión al servidor

Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:

ssh [email protected]_DEL_SERVER

A continuación, deberá ingresar la contraseña del usuario root.

Si no está utilizando el usuario root, puede iniciar sesión con otro nombre de usuario utilizando el mismo comando, luego cambie root a su nombre de usuario:

ssh [email protected]_DEL_SERVER

Luego se le pedirá que ingrese su contraseña de usuario.

El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:

ssh [email protected]_DEL_SERVER -p PORTA

Ahora está conectado a su servidor, está listo para iniciar la configuración de Nginx.

Prerrequisitos

Siga esta guía para instalar Nginx - MySQL - PHP: Cómo instalar LEMP Nginx MySQL PHP en Debian 10.

Procesos de trabajo y conexiones de trabajadores

Las dos primeras variables a optimizar son los procesos de trabajo y las conexiones de trabajo. Lo primero que debe hacer es averiguar qué cantidad de núcleos tiene disponibles en su servidor. De forma predeterminada, worker_processes se establece en auto.

Desde la terminal da este comando:

grep processor /proc/cpuinfo | wc -l

Si el resultado es, por ejemplo, "1", este es el número de núcleos que tiene disponibles en su servidor.

El comando worker_connections nos dice cuántas personas pueden ser atendidas simultáneamente por Nginx. El valor predeterminado es 768. Podemos comprobar los límites de nuestro núcleo con este comando:

ulimit -n

Un ejemplo de resultado sería "1024".

Abramos el archivo de configuración de Nginx. Desde la consola:

sudo nano /etc/nginx/nginx.conf

Busquemos las siguientes líneas y actualicémoslas con los valores obtenidos de los comandos anteriores:

worker_processes 1;
 worker_connections 1024;

Buffer

Otra configuración importante que podemos hacer es sobre el tamaño del búfer. Si el tamaño del búfer es demasiado pequeño, Nginx tendrá que escribir en un archivo temporal, lo que hará que lea y escriba continuamente en el disco. Estas son las variables que modificaremos:

client_body_buffer_size: administra el tamaño del búfer del cliente, es decir, todas las acciones POST enviadas a Nginx.

client_header_buffer_size: administra el tamaño del encabezado del cliente.

client_max_body_size: el tamaño máximo permitido para una solicitud de cliente. Si se excede el tamaño máximo, Nginx devolverá un error "413" o "Solicitar entidad demasiado grande".

large_client_header_buffers: el número máximo y el tamaño de búferes para encabezados de cliente grandes.

Entonces, siempre en el mismo archivo antiguo nginx.conf

Agregue o modifique los siguientes parámetros:

client_body_buffer_size 10K;
 client_header_buffer_size 1k;
 client_max_body_size 8m;
 large_client_header_buffers 2 1k;

Tiempos de espera

Los tiempos de espera también pueden mejorar drásticamente el rendimiento.

client_body_timeout y client_header_timeout son responsables de cuánto tiempo esperará un servidor a que se envíe un cuerpo de cliente o un encabezado de cliente después de la solicitud. Si no se envía ni un cuerpo ni un encabezado, el servidor emitirá un error "408" o "Solicitar tiempo de espera".

Keepalive_timeout Nginx cerrará las conexiones con el cliente después de este período de tiempo.

send_timeout se refiere al tiempo de respuesta entre dos operaciones de lectura; si pasado este tiempo el cliente no acepta nada, Nginx cerrará la conexión.

Luego, en el mismo archivo anterior nginx.conf

Agregue o modifique los siguientes parámetros:

client_body_timeout 12;
 client_header_timeout 12;
 keepalive_timeout 15;
 send_timeout 10;

Compresión con Gzip

Gzip ayuda a reducir el tráfico de la red Nginx.

Siempre en el mismo archivo nginx.conf

Agregue o modifique los siguientes parámetros:

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;

Inicio sesión

Nginx registra cada tipo de solicitud al servidor en un archivo de registro, puede deshabilitarlo.

En el mismo archivo nginx.conf

Agregue o modifique los siguientes parámetros:

access_log off;

Guarde y cierre el archivo.

Para comprobar si las configuraciones se realizaron correctamente, desde la consola:

sudo nginx -t

Almacenamiento en caché de archivos estáticos

Puede establecer la caducidad de la caché para ciertos tipos de archivos.

Abra y edite el siguiente archivo:

sudo nano /etc/nginx/sites-available/default

Agregue las siguientes líneas de código dentro del bloque del servidor {...}:

server{...
 location ~*.(jpg|jpeg|png|gif|ico|css|js)$ {
 expires 365d;
 }...
 }

Guarde y cierre el archivo.

Para comprobar si las configuraciones se realizaron correctamente, desde la consola:

sudo nginx -t

Si no hay errores, reinicie nginx:

sudo service nginx restart

La optimización de Nginx en Debian 10 ha finalizado.

Apóyenos si le gusta nuestro contenido. Gracias.

Buy me a coffeeBuy me a coffee

Únase a la conversación

Apóyenos con una donación.

Genial! A continuación, complete el pago para obtener acceso completo a Noviello.it.
Bienvenido de nuevo! Has iniciado sesión correctamente.
Te has suscrito correctamente a Noviello.it.
Éxito! Su cuenta está completamente activada, ahora tiene acceso a todo el contenido.
Éxito! Su información de facturación ha sido actualizada.
Su facturación no se actualizó.