Qué es NGINX
Servidor web y proxy inverso
NGINX es un servidor web de alto rendimiento de código abierto, proxy inverso, balanceador de carga y caché HTTP. Creado por Igor Sysoev en 2004, ahora propiedad de F5 Networks.
Funciones Principales
- Servidor web — servir contenido estático
- Proxy inverso — proxy de solicitudes a servidores backend
- Balanceo de carga — distribución de tráfico entre servidores
- Terminación SSL/TLS — manejo de conexiones HTTPS
- Caché HTTP — almacenamiento en caché de respuestas de servidores upstream
Ventajas
- Arquitectura asíncrona basada en eventos
- Bajo consumo de memoria
- Alto rendimiento (10K+ conexiones)
- Configuración simple
- Arquitectura modular
Casos de Uso Típicos
- Servir archivos estáticos (HTML, CSS, JS, imágenes)
- Proxy inverso para Node.js, Python, PHP, Java
- API Gateway
- Balanceo de carga entre contenedores Docker
- SSL offloading para microservicios
Configuración Básica
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
}
location /static/ {
root /var/www;
expires 30d;
}
}
NGINX vs Apache
| Parámetro | NGINX | Apache | |-----------|-------|--------| | Arquitectura | Event-driven | Proceso/Hilo | | Archivos estáticos | Más rápido | Más lento | | .htaccess | No | Sí | | Configuración | Centralizada | Distribuida |
Módulos Populares
- ngx_http_gzip_module — compresión de respuestas
- ngx_http_ssl_module — HTTPS
- ngx_http_proxy_module — proxying
- ngx_http_upstream_module — balanceo de carga
- ngx_http_rewrite_module — reescritura de URL