DevOps··10 min de lectura

Nginx vs Apache en 2026: cuál elegir y por qué

Comparativa práctica entre Nginx y Apache HTTP Server: arquitectura, rendimiento, casos de uso y cuál instalar para tu próximo proyecto.

El estado del mercado

Según W3Techs (mid-2026), Nginx sirve alrededor del 34% de los sitios web, Apache el 20% y Cloudflare/LiteSpeed el resto. Hace 15 años Apache tenía el 65%; el cambio no es casual, sino consecuencia de una diferencia arquitectónica que se nota bajo carga.

Arquitectura: procesos vs event loop

Apache HTTP Server (2.4) sigue un modelo tradicional: un worker (proceso o thread) por conexión. Es simple y funciona bien con carga baja o media, pero cada conexión consume memoria (30-50 MB por proceso con mpm_prefork; menos con mpm_event). Con 10 000 conexiones concurrentes te vas a decenas de GB.

Nginx usa un event loop asíncrono: unos pocos workers gestionan miles de conexiones cada uno mediante epoll / kqueue. La memoria por conexión es de kilobytes, no megabytes. Es lo que hace posible servir 100 k+ conexiones concurrentes en hardware modesto.

Configuración: filosofías opuestas

Apache ofrece flexibilidad por directorio con .htaccess: cada carpeta puede redefinir reglas sin reiniciar. Cómodo en hosting compartido, pero costoso: cada petición lee todos los .htaccess del path.

Nginx rechaza esa filosofía. La config es central (/etc/nginx/), se recarga con nginx -s reload (graceful, sin cortar peticiones). No hay .htaccess. Es más rígido pero mucho más rápido y auditable.

Módulos y funcionalidad

Apache tiene un ecosistema enorme de módulos cargables en caliente (mod_php, mod_rewrite, mod_wsgi). Nginx compila los módulos al build; los "dynamic modules" existen pero son limitados. En la práctica ambos cubren el 95% de casos: HTTP/2, HTTPS, reverse proxy, load balancing, autenticación básica, rewrite, gzip/brotli.

Rendimiento real

Benchmarks públicos (TechEmpower, Netcraft) muestran que Nginx aguanta ~2-3x más req/s que Apache en escenarios de contenido estático o proxy inverso. En dinámico (PHP-FPM), la diferencia se estrecha porque el cuello de botella pasa a ser el intérprete.

Regla útil: para <1 000 req/s prácticamente da igual. Por encima, elige Nginx.

Cuándo elegir Apache

  • Hosting compartido con .htaccess — WordPress, Drupal, Joomla con reglas de rewrite por cliente.
  • Módulos específicosmod_wsgi para Python legacy, integración con Kerberos vía mod_auth_kerb.
  • Ecosistema al que estás acostumbrado — no hay que cambiar por moda.

Cuándo elegir Nginx

  • API o SPA moderna — reverse proxy delante de Node/Python/Go.
  • Alto tráfico — miles de conexiones concurrentes.
  • Terminación TLS y balanceo de un pool de backends.
  • Servir estáticos — Nginx es especialmente eficiente con sendfile.

Alternativas modernas

  • Caddy — HTTPS automático (Let's Encrypt integrado), config trivial. Ideal para proyectos personales y pequeñas apps.
  • Traefik — reverse proxy con auto-discovery en Docker/K8s. Fantástico como ingress en entornos contenedorizados.
  • HAProxy — TCP/HTTP load balancer de altísimo rendimiento. Suele ir delante de Nginx en arquitecturas grandes.

Configuración mínima Nginx moderna

Vhost HTTPS con HTTP/2, HSTS y proxy_pass:


server {
  listen 443 ssl http2;
  server_name miapp.com;

  ssl_certificate /etc/letsencrypt/live/miapp.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/miapp.com/privkey.pem;
  ssl_protocols TLSv1.2 TLSv1.3;
  add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;

  location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }
}

server {
  listen 80;
  server_name miapp.com;
  return 301 https://$host$request_uri;
}

Genera esto y más con nuestro generador de Nginx o su equivalente VirtualHost Apache con las mismas buenas prácticas.

Veredicto

Si empiezas un proyecto nuevo en 2026, Nginx es la opción por defecto para 90% de casos: web estática, API detrás de un backend, balanceo. Apache sigue siendo apropiado cuando dependes de .htaccess o módulos específicos. Ambos son estables, seguros y mantenidos activamente. La discusión "cuál es mejor" es menos interesante que "cuál encaja con lo que necesitas".

Herramientas relacionadas

Sigue leyendo