¿Las desventajas de usar nginx como servidor web principal?

12

He visto millones de sitios web que usan nginx como un servidor web proxy que trabaja junto con Apache. Pero he visto muy pocos servidores que ejecutan nginx solo como su servidor web predeterminado. ¿Cuáles son los principales inconvenientes de dicha configuración?

Puedo ver algunos:

  • Incapacidad para usar archivos de configuración por directorio como .htaccess, por lo que cada cambio de configuración debe hacerse al archivo de configuración del servidor principal y requiere la recarga del servidor. Pero pecl htscanner puede compensarlos por la configuración de php
  • Indisponibilidad de mod_php para nginx, que puede compensarse con php-fpm, por ejemplo.

¿Qué son los demás? ¿Por qué las personas simplemente no dejan Apache y se mueven a nginx o cualquier otra solución ligera? Puede ser, hay algunas razones especiales?

EDITAR: esta pregunta se trata principalmente de trabajar con la pila LAMP.

Vladislav Rastrusny
fuente
1
Mindshare, inercia, inversión. Lo mismo de siempre.
Ignacio Vazquez-Abrams
¿Qué inversión se necesita para configurar nginx en un nuevo servidor? Es un software gratuito de código abierto.
Vladislav Rastrusny
3
La inversión de tiempo requerida para investigar, desplegar, probar, etc.
ThatGraemeGuy
Si hablamos de cantidad, en mi humilde opinión, la razón más importante es la gran cantidad de hosts compartidos que usan Apache. Configurar nginx como un servicio compartido (por ejemplo, como cPanel, Plesk, etc.) aún no es tan fácil como hacer lo mismo con Apache, especialmente para los usuarios finales. Y conozco muchos servidores dedicados que ejecutan un solo sitio y, sin embargo, usan cPanel / Plesk / etc solo por la facilidad, la familiaridad y el bajo costo de configuración.
Halil Özgür

Respuestas:

9

Desde mi experiencia #nginx, casi siempre se debe a la familiaridad con los archivos .htaccess de Apache y a no querer perder eso o, de lo contrario, depender de él. Por ejemplo, las personas que ejecutan servidores compartidos que desean descargar solo archivos estáticos y mantener apache para que sus usuarios jueguen con ellos.

Y, sinceramente, no puedo pensar en ninguna otra razón para enviar proxy a Apache que no sea mantener .htaccess para los usuarios finales.

Editar: en realidad mod_php más phpsuexec para hosts compartidos podría ser otra razón para quedarse con Apache.

Martin Fjordvald
fuente
Según mi experiencia, es bastante difícil obtener un buen rendimiento de tomcat a través de nginx, ya que ajp-worker de apache2 es notablemente más rápido bajo alta presión. Sé que nginx tiene una implementación experimental ajp13, pero no es estable y está mal documentada.
pauska
1
Eso es muy posible Nginx funciona mejor como fastcgi o HTTP 1.0 proxy inverso. Sé que hay módulos de terceros para hablar con scgi, wsgi, etc., pero no puedo decir qué tan estables son, ni siquiera qué tan rápidos son.
Martin Fjordvald
Por cierto, mod_php no funciona con suexec. Suexec es para aplicaciones cgi.
Vladislav Rastrusny
Bueno, ahí tienes, sin razones reales. He sido un usuario de nginx durante demasiado tiempo para recordar incluso más a Apache. : D
Martin Fjordvald
6

Si tiene un montón de personas que pueden hacer que Apache funcione bien, ¿por qué molestarse en volver a aprender una aplicación y configuración completamente nuevas, migrar las reglas mod_rewrite, rehacer las configuraciones mod_perl / php / etc., volver a probar, volver a implementar?

Ambas pilas de software pueden ser gratuitas, pero "volver a entrenar, volver a desarrollar, volver a probar" no lo es, y es hora de que pueda agregar características que a sus usuarios les interesan 1 , en lugar de jugar por el simple hecho de jugar.

1 Obviamente no estoy hablando de proyectos personales, allí.

Rodger
fuente
2

Me gusta Nginx, pero hay dos cosas que me impiden usarlo para mis sitios web.

  • Es difícil configurar PHP-FPM . Todavía no he logrado hacerlo con la última versión de PHP.

  • Nginx no es compatible con HTML5 Websockets, en lo que estoy interesado.

Jonas
fuente
1
¿Puedes nombrar las dificultades que experimentaste con nginx y php-fpm? Acerca de HTML5 WebSockets, parece que Apache aún no los tiene: issues.apache.org/bugzilla/show_bug.cgi?id=47485
Vladislav Rastrusny
También me gustaría conocer los problemas de php-fpm. Si puede compilar PHP desde la fuente sin él, entonces también es muy sencillo hacerlo con él.
Martin Fjordvald
1
5.3 branch ya lo tiene dentro, así que solo ./configure --enable-fpm y listo.
Vladislav Rastrusny