El ajuste de rendimiento en NGINX es crucial para asegurar que tu servidor web o proxy inverso funcione de manera eficiente y pueda manejar grandes volúmenes de tráfico sin problemas. En esta sección, aprenderemos cómo optimizar NGINX para mejorar su rendimiento.
Conceptos Clave
- Parámetros de Configuración: Ajustes específicos en el archivo de configuración de NGINX que pueden mejorar el rendimiento.
- Caching: Almacenamiento en caché de contenido para reducir la carga en el servidor.
- Compresión: Uso de compresión para reducir el tamaño de las respuestas HTTP.
- Conexiones y Procesos: Configuración de la cantidad de conexiones y procesos que NGINX puede manejar.
- Optimización del Sistema Operativo: Ajustes en el sistema operativo que pueden mejorar el rendimiento de NGINX.
Parámetros de Configuración
worker_processes
El parámetro worker_processes define el número de procesos de trabajo que NGINX debe usar. Generalmente, se recomienda configurarlo al número de núcleos de CPU disponibles.
worker_connections
El parámetro worker_connections define el número máximo de conexiones que cada proceso de trabajo puede manejar simultáneamente.
keepalive_timeout
El parámetro keepalive_timeout define el tiempo que NGINX mantendrá una conexión abierta después de enviar una respuesta.
sendfile
El parámetro sendfile permite a NGINX usar la función sendfile del sistema operativo para enviar archivos, lo que puede mejorar el rendimiento.
tcp_nopush y tcp_nodelay
Estos parámetros optimizan la forma en que NGINX envía datos a través de la red.
Caching
El almacenamiento en caché puede reducir significativamente la carga en el servidor. NGINX permite configurar el almacenamiento en caché de contenido estático y dinámico.
Configuración de Caché de Contenido Estático
Configuración de Caché de Proxy
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
server {
location / {
proxy_cache my_cache;
proxy_pass http://backend;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
}
}Compresión
La compresión de respuestas HTTP puede reducir el tamaño de los datos enviados al cliente, mejorando así el rendimiento.
Configuración de Compresión gzip
gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; gzip_proxied any; gzip_min_length 1000;
Conexiones y Procesos
Aumentar el Límite de Conexiones
Asegúrate de que el sistema operativo permita un número suficiente de conexiones.
Configuración de worker_rlimit_nofile
Optimización del Sistema Operativo
Ajustes de Kernel
Ajusta los parámetros del kernel para mejorar el rendimiento de la red.
sysctl -w net.core.somaxconn=65535 sysctl -w net.ipv4.tcp_tw_reuse=1 sysctl -w net.ipv4.ip_local_port_range="1024 65535"
Configuración de Swappiness
Reduce el uso de swap para mejorar el rendimiento.
Ejercicio Práctico
Ejercicio 1: Optimización Básica
- Objetivo: Configurar NGINX para manejar un alto volumen de tráfico.
- Instrucciones:
- Ajusta
worker_processesyworker_connectionsen tu archivo de configuración de NGINX. - Habilita
sendfile,tcp_nopush, ytcp_nodelay. - Configura la compresión gzip.
- Aumenta el límite de conexiones en el sistema operativo.
- Ajusta
Solución
worker_processes auto;
events {
worker_connections 1024;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_proxied any;
gzip_min_length 1000;
server {
listen 80;
server_name example.com;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
}Conclusión
En esta sección, hemos cubierto varios aspectos del ajuste de rendimiento en NGINX, desde la configuración de parámetros básicos hasta la optimización del sistema operativo. Estos ajustes pueden ayudar a mejorar significativamente el rendimiento de tu servidor NGINX, permitiéndole manejar un mayor volumen de tráfico de manera eficiente. En la próxima sección, exploraremos técnicas avanzadas de monitoreo y solución de problemas para mantener tu servidor NGINX funcionando sin problemas.
Curso de NGINX
Módulo 1: Introducción a NGINX
Módulo 2: NGINX como Servidor Web
- Sirviendo Contenido Estático
- Listados de Directorios
- Páginas de Error Personalizadas
- Registro y Formatos de Registro
Módulo 3: NGINX como Proxy Inverso
- Introducción al Proxy Inverso
- Configurando un Proxy Inverso
- Balanceo de Carga
- Verificaciones de Salud
