Apache vs Nginx Parte II
Como te comentábamos ayer, en el artículo de hoy terminamos el análisis entre Apache y Nginx, para que puedas escoger estando súper bien informad@ sobre las características de cada uno de ellos 🙂
Configuración Centralizada vs Distribuida
Para los administradores, una de las diferencias más palpables entre ambos es si la configuración de los directorios se permite dentro de los propios directorios.
Apache incluye una opción para permitir la configuración adicional sobre una base de directorio a través de inspeccionar e interpretar directivas en expedientes escondidos dentro del propio contenido de los directorios. Estos archivos son conocidos como .htaccess.
Nginx no interpreta archivos .htaccess ni proporciona mecanismo alguno para la evaluación de la configuración por directorios fuera de la configuración principal de archivos. Puede que esto sea menos flexible que el modelo de Apache, pero también tiene sus ventajas.
La mejoría más notable respecto al sistema .htaccess de la configuración a nivel de directorio es la actuación mejorada. Con un setup típico de Apache que pueda permitir .htaccess en cualquier directorio, el servidor comprobará estos archivos en cada uno de los archivos padre llegando hasta el archivo solicitado para cada petición. Si se encuentran uno o más archivos durante esta búsqueda, éstos deben ser leídos e interpretados. Como no permite la invalidación de ficheros, Nginx puede responder a las peticiones más rápido mediante una simple búsqueda y lectura de archivos para cada petición (asumiendo que el archivo se encuentre en la estructura convencional de directorio).
Módulos
Nginx y Apache son extensibles a través de sistemas de módulos, pero el modo en que trabajan difiere de forma significante.
El sistema de módulos de Apache te permite cargar y descargar de forma dinámica módulos para satisfacer tus necesidades durante el tiempo en el que el servidor esté corriendo. El core de Apache siempre está activo, mientras que los módulos pueden estar encendidos o apagados, añadiendo o eliminando funcionalidad adicional y conectándose con el servidor principal.
Nginx también implementa un sistema de módulos pero es bastante diferente del sistema de Apache. En Nginx los módulos no son dinámicamente descargables, por lo que deben ser seleccionados y compilados en el núcleo del software.
Soporte, Compatibilidad, Ecosistema y Documentación
Apache ha adquirido popularidad por un largo tiempo ya, por lo que su soporte se ha vuelto bastante ubicuo. Hay una larga biblioteca de documentación de sus creadores así como de terceros disponible para el servidor y para escenarios de tareas que impliquen conectar Apache con otros softwares.
Nginx está experimentando un incremento en su soporte, ya que muchos usuarios lo acogen como su servidor base, pero aún tiene que actualizarse en algunas áreas importantes.
Usando Apache y Nginx juntos
Después de tratar los beneficios y limitaciones de Apache y Nginx, puede que tengas una mejor idea de qué servidor es el que más se adecua a tus necesidades. Sin embargo, muchos usuarios consideran que es posible medir los puntos fuertes de cada servidor a través de un uso conjunto de ambos.
La configuración convencional para esta colaboración es situar Nginx enfrente de Apache como un proxy invertido. Esto permitirá a Nginx manejar todas las peticiones de los clientes. Esto se beneficia de la velocidad de procesamiento de Nginx y su habilidad para manejar un elevado número de conexiones de forma concurrente.
Para el contenido estático, en lo que Nginx es excelente, los archivos se le proporcionarán al cliente de forma rápida y directa. En lo que respecta al contenido dinámico, por ejemplo archivos PHP, Nginx le pasará la petición a Apache, que podrá procesar los resultados y volver a la página solicitada. Entonces Nginx puede pasarle el contenido al cliente.
Este setup funciona bien para mucha gente porque permite a Nginx funcionar como una máquina de clasificación. Se encargará de todas las peticiones que pueda y pasará aquéllas para las que no tiene la capacidad innata de resolver. Mediante la reducción de las peticiones que se le solicitan al servidor Apache, puedes aliviar algunos de los bloqueos que ocurren cuando un proceso de Apache está ocupado.
Esta configuración también te permitirá prever mediante la adición de servidores de backend cuando sea necesario. Nginx puede ser configurado para pasar a un pool de servidores de forma fácil, incrementando la actuación y la resiliencia al fallo de la configuración.
Conclusión
Como puedes ver, tanto Apache como Nginx son poderosos, flexibles y capaces. Decidir qué servidor es el mejor para ti consiste en evaluar lo que necesitas y hacer pruebas para ver qué es lo que mejor se ajusta a tus necesidades.
Deja una respuesta