Del silicio al vapor
"O cuando la computación dejó de ser un lugar" Hubo una época en que podíamos señalar un servidor
Introducción Este artículo profundiza en un análisis comparativo de Nginx y Traefik como proxies inversos (reverse proxies) . Examinaremos los indicadores clave de rendimiento, incluyendo la latencia (p99), el rendimiento (peticiones por segundo), la disponibilidad (tasa de error) y la utilización de recursos (CPU, memoria y tráfico de red). El análisis
Este artículo profundiza en un análisis comparativo de Nginx y Traefik como proxies inversos (reverse proxies) . Examinaremos los indicadores clave de rendimiento, incluyendo la latencia (p99), el rendimiento (peticiones por segundo), la disponibilidad (tasa de error) y la utilización de recursos (CPU, memoria y tráfico de red). El análisis también considera el impacto en el rendimiento de las aplicaciones backend. Inspirados por este video, nuestro objetivo es proporcionar una comprensión integral de qué proxy podría ser el más adecuado para tus necesidades.
Antes de entrar en detalles, definamos qué es un proxy inverso. Es un servidor que se sitúa delante de tu aplicación, enrutando las peticiones entrantes a las instancias de la aplicación backend. Piénsalo como un guardián, protegiendo tus valiosos servidores de aplicaciones del salvaje oeste de internet. Aquí te explicamos por qué son esenciales:
Comparemos Nginx y Traefik en varios aspectos clave:
Las pruebas se realizaron en AWS, utilizando instancias m7a.large para cada proxy e instancias EC2 medianas para las aplicaciones backend. Se utilizó un clúster EKS con instancias Graviton para la monitorización (Prometheus y Grafana) y la generación de carga. La versión de Nginx utilizada fue la 1.27.2 y la versión de Traefik la 3.2.0. Todos los archivos de configuración y scripts de Terraform están disponibles en GitHub.
Nginx demostró consistentemente una latencia menor durante toda la prueba, lo que indica una mejor experiencia de usuario. La latencia de Traefik aumentó a medida que se intensificaba la carga.
Nginx logró un rendimiento significativamente mayor, alcanzando las 40.000 peticiones por segundo en comparación con las 17.000 de Traefik. Esto se traduce en posibles ahorros de costos en infraestructura.
El uso de CPU de Traefik alcanzó rápidamente el 100%, mientras que Nginx tenía más margen. Esto se alinea con los resultados de rendimiento, lo que sugiere que Traefik alcanzó su límite de rendimiento antes.
El uso de memoria de Traefik aumentó con el tiempo, posiblemente debido al almacenamiento en caché. El uso de memoria de Nginx se mantuvo relativamente estable.
Traefik intentó procesar cada petición, lo que afectó la latencia. Nginx, por otro lado, descartó un pequeño porcentaje de peticiones bajo carga extrema, priorizando la baja latencia para la mayoría de los usuarios.
Un factor crucial en el rendimiento de Nginx es la configuración keep-alive. De forma predeterminada, Nginx no utiliza keep-alive para las conexiones backend, lo que genera una mayor carga en los servidores de aplicaciones. Habilitar keep-alive mejora drásticamente el rendimiento de Nginx al reutilizar las conexiones.
upstream backend {
server backend1:8080;
server backend2:8080;
keepalive 16; # Habilitar keep-alive con 16 conexiones
}
server {
# ... otras configuraciones
location / {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Connection ""; # Importante para keep-alive
}
}
Nginx superó a Traefik en este benchmark, particularmente en rendimiento y latencia. Sin embargo, la facilidad de configuración de Traefik y el soporte integrado de Let's Encrypt son características atractivas. La elección entre los dos depende de tus necesidades y prioridades específicas. Si el rendimiento puro es primordial, Nginx, especialmente con keep-alive habilitado, parece ser el ganador. Si la facilidad de uso y la configuración dinámica son más importantes, Traefik podría ser una mejor opción.

"O cuando la computación dejó de ser un lugar" Hubo una época en que podíamos señalar un servidor
El lado "defensivo" de la ciberseguridad es, a menudo, el lado "ofensivo" con una licencia diferente. La misma AI que puede "detectar una vulnerabilidad para parchearla" también puede "detectar una vulnerabilidad para explotarla".