L'MPM Evento non ha esattamente lo stesso design di Nginx, ma è stato chiaramente progettato per rendere i keepalive più tenibili e l'invio di file statici più veloce. Mi risulta che il MPM evento è un po 'fuorviante perché:Perché l'evento Apache MPM funziona male?
- Sebbene la connessione viene passato al kqueue/epoll,
- determinati moduli molto importanti come mod_gzip e mod_ssl bloccheranno/consumano un filo fino la risposta è fatto,
- e questo è un problema per file di grandi dimensioni, ma probabilmente non per i documenti HTML PHP-generato, ecc
Purtroppo, Apache continua a perdere quota di mercato, e la maggior parte benchmark sono dannando per l'evento MPM. I benchmark sono viziati o l'evento MPM è davvero negativo rispetto a Nginx? Anche con queste limitazioni, nel traffico normale (non dannoso) e nei file più piccoli, dovrebbe essere alquanto competitivo con Nginx. Ad esempio, dovrebbe essere competitivo per i documenti generati da PHP tramite php-fpm su connessioni lente perché il documento verrà memorizzato nel buffer (anche se è ssl'd e gzip'd) e inviato in modo asincrono. Sia le connessioni SSL che quelle non SSL che utilizzano la compressione o meno non dovrebbero funzionare in modo significativamente diverso da quello che avrebbero in Nginx su un tale carico di lavoro.
Quindi perché non risplende in vari benchmark? Che cosa c'è che non va? O cosa c'è che non va nei benchmark? Un sito importante lo utilizza come un appello all'autorità che può eseguire?
Questa sarebbe una domanda molto migliore se avessi citato i benchmark a cui fai riferimento. Se si desidera semplicemente un'installazione rapida, la pre-fork di Apache + mod_php supererà costantemente Nginx su carichi da bassi a medi: c'è una grande differenza sotto carico pesante. Ma se vuoi capacità e prestazioni, dovresti guardare a un'architettura diversa: ATS/nginx/vernice di fronte ai tuoi server web. – symcbean
@symcbean Probabilmente vero. Devo ancora trovarne uno (eccetto quello pubblicato da Apache) che sembra buono. Penso anche che tu sia troppo generoso. ATS o Varnish faranno molto poco (o essere dannosi) sui contenuti dinamici che non possono essere memorizzati nella cache. –
Au contraire. L'esecuzione di un server basato su eventi di fronte a un server web pre-fork fornirà protezione contro gli attacchi di tipo sloloris e scaricherà il contenuto statico in servizio, risparmiando memoria e aumentando la capacità. La latenza aggiuntiva sul contenuto dinamico dovrebbe essere dell'ordine di un paio di millisecondi: difficilmente terrificante. Infatti, se è possibile spostare il proxy inverso più vicino ai client, si dovrebbe vedere un significativo miglioramento delle prestazioni. – symcbean