¿Cuáles son los pros y los contras de nginx?

No he usado nginx casi tanto como Apache, pero lo he usado un poco, así que intentaré proporcionar algunos puntos iniciales sobre los que otros pueden construir.

Pros

  • base de código escrita en gran parte por una persona, probablemente más consistente / más pequeña que las alternativas
  • Formato de configuración amigable que es más moderno en diseño que los servidores web alternativos (mi opinión)
  • basado en eventos, por lo que puede manejar más conexiones con menos sobrecarga debido al cambio de contexto, etc.
  • huella de memoria baja, diseño modular

Contras

  • menos apoyo y documentación de la comunidad que Apache, pero probablemente más que suficiente dependiendo de su experiencia y caso de uso
  • no tantos módulos / extensiones como Apache
  • no se usa con tanta frecuencia como alternativas, por lo que puede no estar tan bien examinado

Agregando:

Contras:

  • Muchas aplicaciones web se proporcionan con la configuración de Apache. Cuando usas Nginx, estás solo porque no funciona con los archivos de configuración de Apache.
  • AFAIK, no hay soporte completo de WebDAV incorporado.

La respuesta depende de tu contexto. ¿Que estás tratando de hacer? ¿Que problema estas tratando de resolver?

El servidor web nginx es enormemente eficiente en el servicio de recursos estáticos y puede adaptarse a contenido dinámico. Si la mayor parte de su contenido es estático, y necesita soportar una gran carga de recursos lean, entonces esta puede ser la opción correcta.

Si el contenido devuelto por su servicio es altamente dinámico, podría ser mejor con algo como Jetty (un servidor web Java puro). El hardware actual es capaz de saturar las conexiones de red mientras entrega contenido dinámico (si escribe sus aplicaciones con habilidad).

Si está integrando aplicaciones web existentes que funcionan bien con Apache, esa podría ser su mejor opción.

No subestimes la utilidad de FastCGI con nginx.