Durante dos décadas, Apache dominó el mercado de servidores web, que se reduce día a día. Nginx no solo se ha puesto al día con el niño mayor de la cuadra, sino que actualmente es el brindis de muchos sitios web de alto tráfico. Los usuarios de Apache pueden estar en desacuerdo aquí. Es por eso que uno no debe sacar conclusiones precipitadas sobre qué servidor web es mejor. La verdad es que ambos forman el núcleo de las pilas web completas (LAMP y LEMP), y la elección final se reduce a las necesidades individuales.
Por ejemplo, las personas que ejecutan sitios web de Drupal a menudo recurren a Apache, mientras que los usuarios de WordPress parecen preferir Nginx tanto o más. En consecuencia, nuestro objetivo es ayudarlo a comprender mejor sus propios requisitos en lugar de proporcionar una recomendación única. Habiendo dicho eso, la siguiente comparación entre los dos da una imagen precisa.
1. Popularidad
Hasta 2012, más del 65% de los sitios web estaban basados en Apache, una popularidad que se debe en gran medida a su legado histórico. Fue uno de los primeros software que fue pionero en el crecimiento de la World Wide Web. Sin embargo, los tiempos han cambiado. Según W3Tech.com, al 14 de enero de 2019, Apache (44,4 %) está ligeramente por delante de Nginx (40,9 %) en términos de sitios web que utilizan sus servidores. Entre ellos dominan casi el 85% del mercado de servidores web.
Cuando se trata de sitios web con alto tráfico, el siguiente gráfico es interesante. Por supuesto, Nginx está bastante por delante de Apache, pero se queda atrás de los servidores de Google que impulsan sitios web como YouTube, Gmail y Drive.
En algún momento, una gran cantidad de sitios web (incluido este sitio) migraron de Apache a Nginx. Claramente, este último es visto como el último y más moderno servidor web. Los sitios web de alto tráfico que están en Apache, por ejemplo, Wikipedia y New York Times, a menudo usan un proxy HTTP front-end como Barniz.
Puntaje: La brecha de popularidad entre Apache y Nginx se está cerrando muy rápido. Pero, como Apache todavía está por delante en números absolutos, consideraremos esta ronda como un empate.
2. Velocidad
La característica principal de un buen servidor web es que debe funcionar rápido y responder fácilmente a las conexiones y el tráfico desde cualquier lugar. Para medir las velocidades del servidor, comparamos dos sitios web de viajes populares basados en Apache (Expedia.com) y Nginx (Booking.com). Usando una herramienta en línea llamada Bitcatcha, las comparaciones se realizaron para múltiples servidores y se compararon con el punto de referencia de Google de 200 ms. Booking.com basado en Nginx fue calificado como «excepcionalmente rápido». En contraste, Expedia.com basado en Apache fue calificado como «por encima del promedio y podría mejorarse».
Habiendo usado ambos sitios web de viajes tantas veces, puedo dar fe personalmente de que Expedia se siente un poco más lento en devolver resultados a mi consulta que Booking.
Aquí hay comparaciones entre los dos servidores para algunos otros sitios web. Nginx se siente más rápido en todos los casos a continuación, excepto en uno.
Puntaje: Nginx gana la ronda de velocidad.
3. Seguridad
Tanto Nginx como Apache se toman muy en serio la seguridad en sus sitios web. No hay escasez de sistemas robustos para hacer frente a los ataques DDoS, el malware y el phishing. Ambos publican periódicamente informes y avisos de seguridad que aseguran que la seguridad se fortalece en todos los niveles.
Puntaje: Consideraremos esta ronda como un empate.
4. Concurrencia
Existe la percepción de que Apache de alguna manera no está a la altura de la escala y la capacidad de Nginx. Después de todo, Nginx se diseñó originalmente para acelerar los problemas de velocidad con los controladores FastCGI y SCGI. Sin embargo, desde Apache 2.4 en adelante (que es la versión por defecto), ha habido una mejora drástica en el número de conexiones simultáneas. Vale la pena averiguar hasta qué punto se ha logrado esta mejora.
Según las pruebas de estrés de Loadimpact.com, comparamos nuevamente Booking.com (Nginx) con Expedia.com (Apache). Para 25 usuarios virtuales, el sitio web de Nginx pudo registrar 200 solicitudes por segundo, que es 2,5 veces más que las 80 solicitudes por segundo de Apache. Claramente, si tiene un sitio web dedicado de alto tráfico, Nginx es una apuesta más segura.
Puntaje: Nginx gana la ronda de concurrencia.
5. Flexibilidad
Un servidor web debe ser lo suficientemente flexible para permitir personalizaciones. Apache lo hace bastante bien usando herramientas .htaccess, que Nginx no admite. Permite la descentralización de las funciones del administrador. Se puede evitar que los administradores de segundo nivel y de terceros accedan al servidor principal. Además, Apache admite más de 60 módulos, lo que lo hace altamente extensible. Hay una razón por la que Apache es más popular entre los proveedores de alojamiento compartido.
Puntaje: Apache gana esta ronda.
Otros parámetros
En el pasado, Nginx no era muy compatible con el sistema operativo Windows, a diferencia de Apache. Ese ya no es el caso. Además, Apache se consideró débil para el equilibrio de carga y el proxy inverso, lo que ha cambiado ahora.
Resultado final
Nginx gana por poco este concurso 2-1. Habiendo dicho esto, una comparación objetiva entre Nginx y Apache en cuanto a parámetros técnicos no ofrece una imagen completa. Al final, nuestro veredicto es que ambos servidores web son útiles a su manera.
Si bien Apache debe usarse con un servidor front-end (Nginx en sí mismo es una opción), Nginx puede ser mejor con más personalizaciones y flexibilidad.