Nginx es uno de los servidores web más usados del mundo, junto con Apache y, más recientemente, Caddy. Apareció en 2004 como respuesta al problema C10K (atender diez mil conexiones simultáneas en una sola máquina) con una arquitectura asíncrona y orientada a eventos que lo hace muchísimo más eficiente en memoria y CPU que los servidores tradicionales basados en thread-per-request.
Sus usos típicos son cuatro: servidor web para contenido estático (HTML, CSS, JS, imágenes con caching agresivo), reverse proxy delante de aplicaciones (PHP-FPM, Node, Python, Java) con terminación TLS, balanceador de carga (round-robin, least-connections, ip-hash, weighted) y caché HTTP para acelerar respuestas dinámicas. Para muchos despliegues, una sola instancia de Nginx cubre las cuatro funciones a la vez con una configuración relativamente corta.
La configuración (nginx.conf + ficheros incluidos) tiene fama de quirosa: directivas heredadas en bloques anidados, regex en location, manejo de cabeceras con proxy_set_header. A cambio, una vez aprendida, es muy potente: rate limiting, autenticación básica, rewrite rules, GeoIP, websockets, gRPC, HTTP/2 y HTTP/3 son configuraciones de unas pocas líneas. Existen variantes (OpenResty con Lua embebido, NGINX Plus con módulos comerciales).
En 10Code usamos Nginx como reverse proxy delante de aplicaciones Laravel (con PHP-FPM), Node y Python en infraestructura tradicional y en contenedores. Lo combinamos con Certbot/Let's Encrypt para TLS gratuito, configuramos cacheo de assets estáticos, compresión gzip/brotli y cabeceras de seguridad (HSTS, CSP). En entornos cloud serverless cada vez lo necesitamos menos, porque la propia plataforma se encarga, pero sigue siendo una herramienta clave del kit de cualquier ingeniero.
En 10Code llevamos más de una década aplicando estas tecnologías a productos reales. Si quieres comentarnos tu caso, escríbenos y te respondemos personalmente.
Hablar con un ingeniero