Nginx es definitivamente una buena opción para alojar Magento, y viene con una serie de beneficios agradables (pero pequeños) que pueden ayudar a mejorar el rendimiento del sitio.
La principal diferencia entre Nginx y Apache es que Nginx usa Evento IO sin bloqueo, y Apache solo usa multiprocesamiento / procesamiento. ¿Cuál es la diferencia y por qué es importante? Bueno, en el caso de Apache, digamos que tiene 5 hilos, puede manejar 5 solicitudes de algo en un momento dado. Si uno de esos subprocesos tarda mucho en finalizar, solo quedan 4 subprocesos para manejar cualquier solicitud entrante adicional. Si los 5 subprocesos se bloquean, no se pueden manejar las solicitudes entrantes hasta que finalice una.
Con Evented IO cuando un hilo recibe una solicitud de algo, dispara un evento y pasa directamente a la siguiente solicitud. Cuando el evento devuelve la llamada, luego pasa la respuesta al cliente relevante.
Esto es más o menos similar a cómo funciona JavaScript asíncrono. Usted dispara una solicitud AJAX y continúa hasta que reciba una devolución de llamada.
Este enfoque moderno es muy adecuado para servir muchos archivos estáticos pequeños sin la sobrecarga de generar muchos subprocesos o procesos del sistema de trabajo.
El otro beneficio de Nginx es su huella de memoria baja. Apache admite MUCHAS cosas, y al hacerlo tiene una gran memoria y huella computacional. Puede reducirlo, pero Nginx está diseñado desde cero para ser delgado en términos de memoria.
Las diferencias no son enormes, pero a medida que escala a miles de solicitudes, esas pequeñas diferencias, en conjunto, marcan una gran diferencia.
Ahora es importante recordar que el mayor cuello de botella de rendimiento en una aplicación Magento es la ejecución de código PHP. Aquí hay una diferencia básicamente insignificante en el rendimiento entre Apache y Nginx. Lo importante es usar PHP-FPM, y el trabajador MPM con Apache (y definitivamente evitar prefork / mod-php). La razón principal es que solo invoca un intérprete PHP cuando necesita ejecutar código PHP, y puede usar un software de almacenamiento en caché de código operativo como APC de manera efectiva (y este es el mayor impulso de rendimiento que obtendrá).
Último punto a destacar: algunos módulos / aplicaciones esperan que se use Apache y la documentación puede estar orientada al uso de ModRewrite o al uso de archivos .htaccess. Si bien hay soporte de estilo ModRewrite en Nginx, no hay soporte para soluciones de estilo .htaccess por directorio.
Personalmente, me gusta Nginx porque sirve contenido estático de manera eficiente, es muy fácil configurar PHP-FPM y me gusta bastante su sintaxis de configuración. No es una solución mágica para los problemas de rendimiento, pero es una opción robusta y flexible a tener en cuenta.