Nginx o Apache: ¿Qué servidor web es mejor?

Hay muchos tipos de software de servidor, pero a menudo limitan a sus competidores a Nginx y Apache. Esto se debe a que ambos ofrecen el mejor rendimiento en muchas configuraciones de servidor diferentes y son más adecuados para una aplicación en particular que otras.

Sin embargo, debe considerar cuál se adapta a sus necesidades. Hay varias categorías diferentes a tener en cuenta, como el soporte del sistema operativo (SO), la seguridad, la documentación y (por supuesto) el rendimiento.

Esta publicación compara Nginx y Apache en diferentes áreas. Finalmente, resume los hallazgos y proporciona la información necesaria para seleccionar la opción adecuada.

Introducción a Nginx y Apache

Antes de sumergirnos en los detalles de cada tipo de servidor, echemos un vistazo rápido a Nginx y Apache. Continúe con la siguiente sección para aprender a usar ambos y dónde se ven "realmente".

Nginx

logotipo de Nginx.

Comparado con apacheNginx(Pronunciado "motor X") es relativamente nuevo en el mundo de la tecnología de servidores. Sin embargo, el equipo de desarrollo se encargó de superar los límites del sistema Apache.

Esto se debe a que muchos usuarios consideran su estabilidad y escalabilidad. Esto se debe (parcialmente) a la arquitectura basada en eventos. Hablaremos más sobre esto más adelante. De hecho, parte del objetivo del primer lanzamiento de Nginx era poder:Manejar 10,000 conexionesInmediatamente. Esto fue necesario en 2004 debido al rápido crecimiento de la red en ese momento.

En general, los administradores de sistemas y propietarios de sitios como Nginx se desempeñan bien, funcionan bien con archivos estáticos y actúan como balanceadores de carga y proxies inversos. Todos están relacionados con el tiempo de actividad, la velocidad y la seguridad.

apache

Logotipo del servidor Apache HTTPS.

apacheEs una especie de "viejo hombre" de la tecnología de servidor Web. Es casi tan antiguo como el propio Internet. Desde 1995, Apache ha sido el software detrás de miles, si no millones, de servidores.

Durante mucho tiempo, Apache ha sido la tecnología dominante entre los "administradores de sistemas". Hay muchas razones para esto, algunas de ellas están relacionadas con el rendimiento y otras son por costumbre. Sin embargo, los servidores Apache son ampliamente utilizados cuando la configuración es importante.

Apache es el software preinstalado en todas las plataformas, lo que lo convierte en la solución perfecta para este sistema operativo. Sin embargo, aún brinda potencia, escalabilidad y una excelente documentación, incluso si está utilizando una arquitectura diferente a la de Nginx.

A muchos administradores de sistemas también les gusta la naturaleza personalizable de Apache y la forma en que carga diferentes módulos para crear su propio servidor.

Casos de uso comunes para Nginx y Apache

Cuando se trata de proporcionar sitios web, no es exagerado decir que Apache es el "principal de todas las transacciones". Pero esta es una bendición mixta. Sí, el servidor Apache puede hacer casi cualquier cosa que pueda hacer Nginx, pero ralentiza el rendimiento del código. La edad juega un papel aquí.

Apache surgió en una era en la que no había aplicaciones de servidor web más sofisticadas y el código base no podía hacer lo que necesitaba para servir a un sitio web moderno. Estos problemas no son necesariamente problemas en este momento, pero las soluciones como Nginx funcionan con la web más reciente en mente.

Por lo tanto, Apache resulta ser un gran servidor que es fácil de configurar para aplicaciones como el alojamiento compartido. Con esa integración, también se puede usar como software como parte de Linux, Apache.mysql, Incluso comoPHP(LÁMPARA) Pila.

Logotipo para todas las partes de la pila LAMP (Linux, Apache, MySQL, PHP).

Por el contrario, Nginx tiene una base de software más madura y más optimizaciones en comparación con Apache. Adecuado cuando la estabilidad y la seguridad son factores importantes y fundamentales. Puede ver que el servidor Nginx no es tan configurable como los otros tipos. En otras palabras, accede al núcleo con menos frecuencia.

Además, no es modular como Apache, por lo que no es muy adecuado para situaciones en las que necesitas configurar un servidor.

Nginx y Apache: Popularidad de cada tipo de servidor

Durante mucho tiempo, el software de servidor fue como una carrera de caballos. Apache funcionó asípoder dominanteTodavía tiene una gran cuota de mercado durante muchos años. Esto le permite encontrar mucha integración y soporte del servidor Apache, así como documentación de primer nivel.

Esta es otra razón para elegir Apache y fomenta el uso continuado de Apache. Sin embargo, NginxEnorme cuota de mercadoÉl mismo. Con el tiempo, el uso de Nginx ha crecido lentamente y ahora es la tecnología de servidor web más dominante en el mercado, pero no tanto.

Nginx proporciona mucho de lo que los administradores de sistemas necesitan en sus servidores web, y esperamos que Apache se use menos con el tiempo en el futuro. PeroServidor web LiteSpeedY con una base de usuarios en crecimiento y un fuerte apoyo, está en el horizonte. Dentro de unos años, esta comparación nos permitirá comparar Nginx con una de estas jóvenes empresas emergentes.

Nginx y Apache: características y desglose técnico de las características

Las siguientes secciones describen algunos de los aspectos técnicos de Nginx y Apache. No podemos cubrir todo, pero dedicaremos suficiente tiempo a las áreas clave. En cualquier caso, estos son los elementos principales de ambos tipos de servidores, por lo que hay suficientes para elegir el software adecuado.

1. Solicitud de conexión y tramitación

Es muy importante saber cómo el servidor maneja la conexión. Porque esta es la "moneda básica" del servidor. Es discutible, pero cuando las personas tratan de discutir los beneficios relativos de Nginx y Apache, la conectividad juega un papel importante en el reconocimiento.

Nginx

Nginx es "asincrónico" y "impulsado por eventos". Es decir, puede procesar varias solicitudes al mismo tiempo y procesarlas siempre que tenga los recursos disponibles. Genera un "proceso de trabajo" para manejar las conexiones entrantes y espera miles a la vez. Estos son los "portadores de agua" para el resto del servidor.

Por ejemplo, cada proceso de trabajo escucha eventos, procesa conexiones y las agrega a un bucle continuo. A partir de ahí, el servidor puede procesar cada evento y eliminarlo cuando termine. Los subprocesos del servidor Nginx brindan escalabilidad interna, y las arquitecturas asíncronas sin bloqueo también brindan esto.

apache

Por el contrario, Apache procesa los eventos de uno en uno.Módulo multiprocesador (MPM).. El administrador del sistema elige la mejor arquitectura de conexión para la tarea. Hay muchos de ellos.

El módulo es mpm_preforknormal. Esto genera un proceso secundario para cada evento y procesa solo una conexión a la vez. Cuando la cantidad de procesos excede la cantidad de solicitudes, se vuelve difícil distinguir entre Nginx y Apache desde el punto de vista del rendimiento.

Sin embargo, estas situaciones son raras y los servidores Apache suelen recibir más solicitudes que procesos. Además, este MPM no puede crecer correctamente debido al uso de la memoria.

mpm_preforkEsta es la única forma segura de usar PHP .mod_phpMódulo de intérprete.. A pesar de sus inconvenientes, este es el MPM elegido por los desarrolladores de WordPress cuando necesitan implementar en un servidor Apache.

mpm_workerTambién se muestra el módulo mpm_event. Puede generar varios procesos para cada conjunto de subprocesos, por lo que puede realizar operaciones similares y mejorar el escalado.

Este lote de MPM muestra cuán flexible es Apache, a pesar de algunas fallas de rendimiento.

Manejo de solicitudes de contenido estático y dinámico

Antes de continuar, debemos analizar el contenido estático y dinámico de cada software de servidor. Lea que Nginx no puede manejar contenido dinámico y puede generar inquietudes. De hecho, Nginx no maneja este tipo de contenido de forma nativa. En cambio, lo envía a un procesador externo () y espera a que regrese antes de mover el contenido.

Para el desarrollo, el administrador del sistema configura la soluciónMemcached, etc.para eso. Este enfoque tiene el inconveniente del rendimiento. Sin embargo, los beneficios de rendimiento de cada parte de la cadena niegan esto. Nginx no tiene que preocuparse por manejar estas solicitudes, por lo que puede concentrarse de manera más eficiente en sus áreas de responsabilidad.

El sistema Apache MPM le permite manejar tanto contenido estático como dinámico sin necesidad de otros módulos. Para el contenido dinámico, Apache incorpora un procesador de lenguaje en cada proceso de trabajo. Este es un enfoque simple que funciona bien. También puede reemplazar el módulo si necesita hacer cambios.

2. Configuración del servidor

Una de las diferencias más obvias entre Nginx y Apache es cómo se configura cada servidor. Nginx utiliza un enfoque centralizado. Es decir, no hay forma de que los usuarios configuren un servidor fuera de un archivo principal. Esto parece una desventaja, pero tiene muchas ventajas.

  • El administrador del servidor es responsable de retrasar el acceso a todo el servidor.
  • Los servidores centralizados funcionan mejor que otros tipos. Esto se debe a que Nginx no tiene que procesar la solicitud para verificar los archivos de configuración en todos los directorios.
  • No hay una anulación del servidor de varios reinos, por lo que aquí hay un efecto dominó, lo que reduce aún más el tiempo de consulta.

Una forma de descubrir que un no profesional está usando un servidor Apache es usar. Estos son archivos de configuración que puede agregar casi en cualquier lugar de su servidor. .htaccessApache verifica cada elemento de ruta en el archivo cuando realiza una solicitud.

Archivo .htaccess que muestra algunas reglas de reescritura: comparación de Nginx y Apache

Esto es excelente para los usuarios que desean personalizar parte de su servidor, pero pueden ocurrir desastres si una de las directivas causa problemas de rendimiento o seguridad. Este enfoque descentralizado es una de las razones por las que se utiliza Apache para alojamiento compartido. Esta es también la razón por la cual los sistemas de administración de contenido (CMS) como WordPress brindan un excelente rendimiento en los servidores Apache.

3. Solicitar una transferencia

Una de las diferencias clave entre Nginx y Apache no parece ser obvia, pero es cómo se interpreta la solicitud. En una palabra:

  • Nginx usa el Identificador uniforme de recursos (URI) de cada componente para interpretar y procesar la solicitud.
  • Apache también puede usar URI para interpretar solicitudes, pero la estructura de ruta de archivo se usa más comúnmente.

Dado que Apache es principalmente un servidor web, usamos bloques ,, Directoryo para definir recursos. El concepto clave aquí es que todo lo que Apache "ve" está relacionado con el servidor web, por lo que no hay ambigüedad en la ruta del recurso. Piense en el árbol de documentos. Así es como Apache "renderiza" el sistema de archivos del servidor.FilesLocation

Archivo de configuración de Apache que muestra la protección del sistema de archivos para un directorio en particular: comparación de Nginx y Apache

Por el contrario, Nginx tiene muchos casos de uso, como balanceadores de carga, proxies y servidores web. Por este motivo, la solicitud debe enviarse como URI para que Nginx procese la solicitud. Por ejemplo, use Nginx serverpara locationbloquear. El primer host interpreta el host solicitado y el segundo host coincide con parte del URI. La solicitud completa será un URI.

Archivo de configuración de Nginx: comparación de Nginx y Apache

En general, las URI son más flexibles para Nginx porque se pueden adaptar a la función que realizan. Sin embargo, el sistema Apache funciona porque solo necesita actuar como un servidor web.

Nginx y Apache: qué elegir para tu servidor en 2022

Respuesta universal a la pregunta: ¿Qué software de servidor elegir? Simple: es uno de ustedes. En muchos casos, no hay elección. Muchos servidores web han notado que siguen el mismo patrón que deben seguir al elegir entre Nginx y Apache.

  • Apache es mejor si desea ejecutar un servidor que requiere una determinada configuración, o si desea brindar opciones de configuración a sus usuarios.
  • Sin embargo, si necesita un buen rendimiento y una seguridad sólida y desea manejar la configuración en lugar del usuario, Nginx es el camino a seguir.

En términos de rendimiento, Apache puede consumir más memoria debido a su arquitectura única. Nginx funciona mejor en situaciones de alto tráfico, especialmente cuando necesita manejar grandes cantidades de contenido estático.

Entonces, si confía en el almacenamiento en caché para almacenar y servir contenido, Nginx puede ser su mejor opción. Sin embargo, tenga en cuenta que Nginx no puede proporcionar contenido dinámico, por lo que el rendimiento depende en gran medida de la eficiencia del proxy que utilice.

Conclusión

Hay muchas áreas de WordPress (y la gestión de sitios web) que ofrecen una cantidad casi abrumadora de opciones. Esta es la naturaleza de la bestia. Sin embargo, esto no es útil si necesita poner en marcha su sitio rápidamente.

Elegir un tipo de servidor es una de las decisiones más importantes y avanzadas que requiere mucho cuidado. Tanto Nginx como Apache son comparaciones generales porque ofrecen beneficios en ciertas situaciones.

Creemos que Nginx puede cubrir la mayoría de las bases con un mejor rendimiento, lo que lo convierte en la mejor opción para la mayoría de los usuarios de WordPress. Es por eso que muchos de ellos se han mudado a una pila de servidores totalmente basada en Nginx, incluidos.

De todos modos, sin esa opción, cualquiera que sea el alojamiento que ofrece es seguro de usar, la mayoría de los sitios de WordPress funcionarán perfectamente en cualquier servidor web.

¿Dónde estás sentado en la valla entre Nginx y Apache? ¡Háganos saber en los comentarios a continuación!

Guía gratuita

5 consejos importantes para acelerar su sitio de WordPress

Simplemente siga algunos consejos simples y podrá reducir el tiempo de descarga en un 50-80%.

Descarga la guía gratuita

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Utilizamos cookies para asegurarnos de brindarle la mejor experiencia en nuestro sitio web. Si continúa utilizando este sitio, asumiremos que está satisfecho con él. Más información