Nginx è sicuramente una buona scelta per l'hosting di Magento e offre numerosi vantaggi (ma piccoli) che possono aiutare a migliorare le prestazioni del sito.
La differenza principale tra Nginx e Apache è che Nginx utilizza IO non bloccato e Apache utilizza solo il multithreading / elaborazione. Qual è la differenza e perché è importante? Bene, nel caso di Apache, supponiamo che abbia 5 thread, in grado di gestire 5 richieste per qualcosa in qualsiasi momento. Se uno di questi thread impiega molto tempo per terminare, rimangono solo 4 thread per gestire eventuali ulteriori richieste in arrivo. Se tutti e 5 i thread vengono bloccati, nessuna richiesta in arrivo può essere gestita fino al termine.
Con Evented IO quando un thread riceve una richiesta per qualcosa, genera un evento e passa direttamente alla richiesta successiva. Quando l'evento richiama, passa la risposta al client pertinente.
Questo è approssimativamente simile a come funziona JavaScript asincrono. Spegni una richiesta AJAX e prosegui fino a quando non ricevi una richiamata.
Questo approccio moderno è adatto a servire molti piccoli file statici senza il sovraccarico di generare molti thread o processi di sistema di lavoro.
L'altro vantaggio di Nginx è il suo ingombro di memoria ridotto. Apache supporta MOLTE cose e, nel farlo, ha una memoria elevata e un'impronta computazionale. Puoi rimetterlo a posto, ma Nginx è progettato da zero per essere magro in termini di memoria.
Le differenze non sono enormi, ma man mano che aumenti fino a molte migliaia di richieste, quelle piccole differenze, in totale, fanno una grande differenza.
Ora è importante ricordare che il maggiore collo di bottiglia delle prestazioni in un'applicazione Magento è l'esecuzione del codice PHP. Qui c'è una differenza sostanzialmente trascurabile nelle prestazioni tra Apache e Nginx. L'importante è usare PHP-FPM e il lavoratore MPM con Apache (ed evitare decisamente prefork / mod-php). Il motivo principale è che invochi un interprete PHP solo quando è necessario eseguire il codice PHP e puoi utilizzare in modo efficace il software di memorizzazione nella cache del codice operativo come APC (e questo è il singolo più grande incremento delle prestazioni che otterrai).
Ultimo punto da sottolineare: alcuni moduli / applicazioni prevedono l'utilizzo di Apache e la documentazione potrebbe essere orientata all'uso di ModRewrite o all'uso di file .htaccess. Mentre esiste il supporto per lo stile ModRewrite in Nginx, non esiste il supporto per le soluzioni di stile .htaccess per directory.
Personalmente, mi piace Nginx perché serve in modo efficiente contenuti statici, è molto facile impostare PHP-FPM e mi piace molto la sua sintassi di configurazione. Non è una soluzione di proiettile magico per problemi di prestazioni, ma è un'opzione solida e flessibile da considerare.