8 formas de ajustar el rendimiento de NGINX en Linux
NGINX es un servidor web popular, gratuito y de código abierto. Las configuraciones predeterminadas de NGINX son lo suficientemente buenas para que el servidor web funcione.
Sin embargo, si desea utilizar NGINX al máximo, debe jugar con sus archivos de configuración y establecer los parámetros que optimizarán el rendimiento del servidor. Encontrará los archivos de configuración en el directorio /etc/nginx en una máquina Linux.
¿Qué es NGINX?
NGINX es un servidor web moderno que puede usar como transmisor de medios, servidor de correo, proxy inverso, equilibrador de carga, servidor de caché y más.
Utilizado por muchos perfiles importantes como VMware, IBM, Cisco, Apple, Microsoft LinkedIn, Netflix, Facebook, Twitter, etc., NGINX es ampliamente conocido por su rendimiento de primer nivel. Otra ventaja de usar NGINX es que es fácil de configurar y aprender.
Requisitos previos para ajustar el rendimiento de NGINX en Linux
Debe cumplir con los siguientes requisitos antes de comenzar con las configuraciones de NGINX:
- Un servidor NGINX implementado y configurado en Linux
- Una comprensión básica de NGINX y sus archivos de configuración
Si cumple con estos requisitos, está listo para ajustar NGINX para un rendimiento óptimo. Veamos cómo hacerlo.
1. Configurar procesos de trabajo en NGINX
La arquitectura NGINX consta de un proceso maestro y varios procesos de trabajo. El trabajo del proceso maestro es evaluar la configuración y administrar los trabajadores. Por otro lado, el rol de un proceso de trabajo es manejar las solicitudes entrantes y crear una conexión entre el cliente y el servidor.
El valor del proceso se establece en automático de forma predeterminada. Esto establece la cantidad de procesos de trabajo igual a la cantidad de núcleos de CPU disponibles. Para saber cuántos núcleos de CPU hay en su sistema, ejecute el siguiente comando:
grep processor /proc/cpuinfo | wc -l
Si desea aumentar la cantidad de procesos de trabajo, debe configurar esto en el archivo de configuración de NGINX.
Abra el archivo con nano:
nano etc/nginx/nginx.conf
Para configurar más procesos de trabajo, cambie el valor predeterminado al número máximo de núcleos de CPU disponibles en su sistema.
2. Configurar conexiones de trabajadores
Otro parámetro que puede modificar para mejorar el rendimiento de NGINX son las conexiones de trabajadores. Este es el número máximo de conexiones TCP que cada proceso de trabajo puede manejar simultáneamente.
La mayoría de los sistemas tienen un valor predeterminado de 512 conexiones, pero muchos sistemas modernos también admiten un número mayor. Puede verificar cuántas conexiones admite su sistema con:
ulimit -n
La salida será el número máximo de conexiones admitidas. Luego puede modificar la variable worker_connections en el archivo de configuración de NGINX para mejorar el rendimiento.
3. Permitir la compresión GZIP en NGINX
NGINX utiliza GZIP para la compresión y descompresión de archivos. Si está habilitado en el archivo de configuración de NGINX, puede ahorrar ancho de banda y mejorar el tiempo de carga del sitio web cuando la conexión es lenta.
Para permitir la compresión GZIP, agregue las siguientes líneas en el archivo de configuración de NGINX:
server {
gzip on;
gzip_vary on;
gzip_min_length 10240;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml;
gzip_disable "MSIE [1-6]\.";
}
4. Valor límite de tiempo de espera en NGINX
Los valores de tiempo de espera reducidos también juegan un papel importante en la mejora del rendimiento de NGINX. Las conexiones keepalive reducen la sobrecarga del procesador y de la red al abrir y cerrar conexiones.
Puede modificar los siguientes parámetros en el archivo de configuración para limitar los tiempos de espera:
http
{
client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
send_timeout 10;
}
5. Ajustar el tamaño del búfer
También puede ajustar los búferes de NGINX para optimizar el rendimiento del servidor. Si el tamaño del búfer es demasiado bajo, NGINX escribirá en un archivo temporal que hace que las operaciones de E/S se ejecuten constantemente.
Debe configurar los siguientes parámetros de búfer para que NGINX funcione de la mejor manera:
http
{
client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 4 4k;
}
6. Deshabilite los registros de acceso o habilite el búfer de registros de acceso
Los registros consumen una gran cantidad de espacio en disco y ciclos de CPU/IO que pueden afectar el rendimiento del servidor si registra cada solicitud.
Puede deshabilitar los registros de acceso, lo que ahorrará algo de espacio en disco y procesamiento de la CPU. Para deshabilitar los registros de acceso, agregue la siguiente línea al archivo de configuración de NGINX:
access_log off;
Los registros son importantes ya que ayudan a solucionar un problema. Deshabilitar completamente los registros no es una buena práctica. En este caso, puede habilitar el almacenamiento en búfer de los registros de acceso. Esto permitirá a NGINX almacenar en búfer una serie de registros y escribirlos juntos en el archivo de registro a la vez en lugar de aplicar diferentes operaciones de registro en cada solicitud.
Agregue la siguiente línea en el archivo de configuración de NGINX para permitir el almacenamiento en búfer de registros de acceso:
access_log /var/log/nginx/access.log main buffer=16k
7. Ajuste el período de almacenamiento en caché de contenido estático en NGINX
El contenido del sitio web que permanece igual en todas las páginas se conoce como contenido estático. El almacenamiento en caché de este contenido permite colocarlo en ubicaciones de fácil acceso. Este mecanismo reduce el uso de ancho de banda, permite una accesibilidad rápida y, por consiguiente, mejora el rendimiento del sitio web.
Cuando un cliente solicita contenido estático, el servidor entregará una versión en caché del contenido. Agregue las siguientes líneas en el archivo de host virtual ubicado en el directorio /etc/nginx/sites-available :
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 90d;
}
Esta configuración almacenará en caché los archivos durante 90 días desde la última vez que se accedió al navegador.
8. Habilite la caché de archivos abiertos en NGINX
También puede usar parámetros de caché de archivos abiertos en el archivo de configuración de NGINX para mejorar su rendimiento. Esta directiva permite que el descriptor de archivo y los archivos visitados con frecuencia se almacenen en caché en el servidor.
Agregue las siguientes líneas en la sección http en el archivo de configuración para habilitar la caché de archivos abiertos:
http {
open_file_cache max=1024 inactive=10s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
}
Obtenga lo mejor de NGINX modificando sus archivos de configuración
Una buena práctica a seguir al cambiar configuraciones es tratar con una configuración a la vez y probarla. Si funciona, pase a la siguiente configuración. De lo contrario, siempre puede volver a cambiar la configuración al valor predeterminado.
Al modificar los parámetros configurados en los archivos de configuración de NGINX, como nginx.conf y los archivos de host virtual, puede piratear NGINX para obtener el mejor rendimiento.
Deja una respuesta