NGINX vs. Apache, contenido estático, dinámico, seguridad, soporte, flexibilidad. Hubo un tiempo (~ finales de los años 90 y 2011) en que el servidor web Apache servía alrededor del 60 por ciento, y en ocasiones incluso mas, de los sitios web del mundo. Desde entonces, ese porcentaje ha caído por debajo de 35 y sigue cayendo a una tasa bastante significativa .
Mientras tanto, el servidor web IIS de Microsoft ha mantenido una cuota de mercado algo estable y ligeramente creciente, que alcanza el 30 por ciento en la actualidad. El tercer lugar lo ocupa un competidor llamado NGINX (que se conoce como “engine-x”), que actualmente sirve a alrededor del 16 por ciento de todos los sitios, y esa tasa está creciendo de manera constante en alrededor del uno por ciento cada año.
Observaré que algunos topógrafos web colocan las cuotas de mercado de Apache y NGINX mucho más altas, considerando a IIS como un competidor menor. La realidad probablemente reside en algún punto intermedio, pero las tendencias generales son claras. Teniendo en cuenta solo los sitios más ocupados de la Web, Apache posee aproximadamente el 46 por ciento de la cuota de mercado, pero esa porción se reduce en aproximadamente el cuatro por ciento anual; NGINX ocupa un fuerte segundo lugar con el 24 por ciento de la cuota de mercado y está creciendo a una tasa de alrededor del tres por ciento cada año. ¡Claramente, NGINX está seduciendo a las propiedades web más grandes del mundo con algo!
Rendimiento, soporte, seguridad y documentos comparados
Actuación
A continuación, contrastaremos el rendimiento de Apache (usando el evento MPM) con el de NGINX en los roles de servicio de contenido estático y dinámico.
Contenido estático
NGINX es aproximadamente 2.5 veces más rápido que Apache con base en los resultados de una prueba de referencia que ejecuta hasta 1,000 conexiones simultáneas. Otro punto de referencia que se ejecuta con 512 conexiones simultáneas, mostró que NGINX es aproximadamente dos veces más rápido y consume un poco menos de memoria (4%).
Claramente, NGINX sirve contenido estático mucho más rápido que Apache. Si necesita servir una gran cantidad de contenido estático en altos niveles de concurrencia, NGINX puede ser de gran ayuda.
Contenido dinámico
Un punto de referencia de 2015 que comparó el servicio dinámico de contenido de Apache y NGINX encontró que el evento MPM de Apache, cuando se combina con el módulo PHP-FPM, puede manejar casi la misma concurrencia que NGINX con PHP. Otra comparación de rendimiento del servidor web mostró resultados similares. La razón de esto es que casi todo el tiempo de procesamiento de la solicitud se gasta en el entorno de tiempo de ejecución de PHP en lugar de la parte central del servidor web. El entorno de ejecución de PHP es bastante similar entre ambos servidores web.
En términos de PHP (y probablemente otros idiomas también), el rendimiento del servidor de páginas dinámicas es prácticamente igual al de una configuración adecuada del módulo de Apache (PHP-FPM + FastCGI). Si realmente desea acelerar las páginas dinámicas, tiene varias opciones: agregar una capa de caché Varnish o Memcached, cambiar a un tiempo de ejecución de PHP más rápido (por ejemplo, HHVM), hacer balanceo de carga o agregar más hardware.
Desafortunadamente, el rendimiento superior de servicio de páginas estáticas de NGINX no se traduce en el servicio de páginas dinámicas. Ambos servidores web puntúan aproximadamente lo mismo en este punto.
Soporte del sistema operativo
Apache se ejecuta en todo tipo de sistemas similares a Unix (por ejemplo, Linux o BSD) y tiene soporte completo para Microsoft Windows. NGINX también se ejecuta en varios sistemas modernos similares a Unix y tiene cierto soporte para Windows, pero su rendimiento de Windows no es tan sólido como el de otras plataformas.
Apache sale un poco más fuerte aquí.
Seguridad
Ambos proyectos tienen un excelente historial de seguridad para su base de código basada en C. Sin embargo, la base de código NGINX es significativamente menor en varios órdenes de magnitud, por lo que es definitivamente una gran ventaja desde una perspectiva de seguridad con visión de futuro.
Hay informes de vulnerabilidad disponibles para Apache 2.2 y 2.4. NGINX también tiene una lista de avisos de seguridad recientes. Apache ofrece sugerencias de configuración para el manejo de ataques DDoS, así como el módulo mod_evasive para responder a los ataques DoS, DDoS o de fuerza bruta de HTTP. También puede encontrar recursos útiles para lidiar con las amenazas DDoS en el blog NGINX .
Flexibilidad
Las personalizaciones al servidor web se pueden realizar a través de módulos de escritura. Apache ha tenido la carga dinámica de módulos durante más tiempo, por lo que todos los módulos de Apache son compatibles con esto.
Sin embargo, este no es el caso para NGINX. A principios de 2016, NGINX obtuvo soporte para la carga dinámica de módulos; anteriormente, NGINX requería que el administrador compilara los módulos en el binario NGINX. La mayoría de los módulos aún no admiten la carga dinámica, pero con el tiempo probablemente lo harán.
Apache claramente lleva a este punto.
Módulo dinámico de carga y módulos
Tanto Apache como NGINX tienen un conjunto grande y creciente de módulos de características específicas.
Módulos Apache:
Módulos oficiales (que se encuentran en la sección de módulos de la documentación de Apache)
Desafortunadamente, una lista bien mantenida de todos los módulos de terceros no parece existir todavía.
Módulos NGINX:
Módulos oficiales (que se encuentran en la sección de referencia de módulos de la documentación de NGINX )
Módulos de terceros
No es fácil decir si Apache o NGINX tienen una clara ventaja aquí, pero la mayoría de las funciones básicas del módulo necesario (por ejemplo, proxy, almacenamiento en caché, balanceo de carga, etc.) está disponible para ambos servidores web. NGINX se ve más fuerte en el área de actuar como un proxy inverso para las conexiones TCP y de correo electrónico (SMTP, IMAP, POP3). En el área de los módulos de transmisión de medios, la versión comercial de NGINX Plus también se ve más fuerte.
Apache .htaccess
NGINX no admite algo como el archivo .htaccess de Apache.
Mediante el uso de archivos .htaccess, se pueden anular las configuraciones de todo el sistema por directorio; sin embargo, para un rendimiento óptimo, estas directivas .htaccess deben incluirse en los archivos de configuración principales siempre que sea posible. Esto no es posible en el caso de entornos de alojamiento compartido, pero puede agregar mucha flexibilidad para los usuarios de alojamiento compartido.
Documentación
La documentación tanto para Apache como para NGINX es excelente, incluido el wiki de NGINX . NGINX también ofrece sesiones de capacitación en línea y en el lugar sobre una variedad de temas de NGINX, incluidas las certificaciones de exámenes.
Apoyo
El soporte de la comunidad de Apache se realiza a través de listas de correo, IRC y desbordamiento de pila . El soporte comercial de Apache está disponible en varias compañías de terceros, como OpenLogic, pero la Fundación Apache no mantiene ninguna lista oficial.
NGINX tiene soporte comunitario a través de listas de correo, IRC, desbordamiento de pila y un foro. La compañía detrás de NGINX ofrece un producto comercial llamado NGINX Plus, que admite un conjunto de características adicionales relacionadas con el equilibrio de carga, la transmisión de medios y el monitoreo.
Apache vs NGINX en la revisión
Ambos servidores web, en sus últimas versiones, pueden competir entre sí en la mayoría de las áreas. Para el contenido estático, NGINX es el rey, pero para el contenido dinámico, la diferencia de rendimiento es bastante pequeña. NGINX brilla con algunas de sus características más avanzadas (transmisión de medios, proxy inverso para protocolos no HTTP), así como su soporte comercial y capacitación.
Los usuarios de alojamiento compartido pueden preferir la conveniencia del archivo .htaccess de Apache, y Apache soporta mejor la carga de varios módulos dinámicos, una característica que NGINX acaba de agregar recientemente. NGINX se utiliza principalmente para alojamiento de VPS , alojamiento dedicado o contenedores de clústeres.
Los propietarios de sitios web de alto tráfico que necesitan brindar una gran cantidad de contenido estático y / o transmisiones de medios probablemente preferirán NGINX (o usar una combinación de Apache y NGINX). En la mayoría de los casos de uso de sitios web, cualquiera de los dos servidores web hará el trabajo perfectamente. Para comenzar con cualquiera de los servidores web, necesitará un proveedor sólido de alojamiento de Linux. Afortunadamente, nuestro equipo comparó a los mejores proveedores y puede orientarle en la dirección correcta para el alojamiento de Linux para servidores virtuales o bare metal.
Leer también: Nginx, descripción, características, modelo de eventos; servidores web basados en procesos vs web servers basados en eventos; Cual es el mejor hosting para magento, litespeed web server vs Apache vs nginx
More from Hosting
Servidores Dedicados: ¿Qué son y por qué podrías necesitar uno?
En la era digital actual, la presencia en línea se ha convertido en un pilar fundamental para empresas y emprendedores. …
Protegiendo tu Blog de Ataques de Rastreo y Scraping
En el mundo digital actual, los blogs son una parte integral de la expresión personal y profesional en línea. Sin …
Soluciones a 5 problemas comunes del server room
Soluciones a 5 problemas comunes del server room. Cuando se trata de seguridad para la red de su empresa, la …