2010-11-05 21 views
10

Attualmente ho un server con nginx che reverse_proxy ad apache (stesso server) per l'elaborazione delle richieste php. Mi chiedo se rilasciare apache quindi eseguirò nginx/fastcgi su php se vedessi aumenti di qualsiasi tipo di prestazioni. Presumo che lo farei da quando Apache è piuttosto gonfia, ma allo stesso tempo non sono sicuro di quanto sia affidabile fastcgi/php soprattutto nelle situazioni di traffico intenso.nginx/apache/php vs nginx/php

I miei siti ricevono circa 200.000 visitatori unici al mese, con circa 6.000.000 di scansioni di pagine dai motori di ricerca mensili. Questo numero è in costante aumento, quindi guardo le opzioni di perfomrance.

Il mio sito è molto codice ottimizzato saggio e non c'è alcun caching (non voglio che o), ogni pagina ha un max di 2 query SQL senza giunzioni su altri tavoli, gli indici sono perfetti pure.

In un anno circa riscriverò tutto per utilizzare ClearSilver per i modelli, quindi probabilmente userò python o altro C++ per prestazioni estreme.

Suppongo di essere più o meno alla ricerca di un consiglio da chiunque abbia familiarità con nginx/fastcgi e se sia disposto a fornire alcuni benchmark. I miei siti sono un server con 1 xeon quad core, 8 gb ram, disco velociraptor da 150 gb.

risposta

5

nginx funzionerà sicuramente più velocemente di Apache. Non posso dire di fastcgi dato che non l'ho mai usato con nginx ma questa soluzione sembra avere più senso su diversi server (uno per i contenuti statici e uno per fastcgi/PHP).

Se si sta davvero puntando alle prestazioni e si prende in considerazione anche C/C++, è consigliabile provare G-WAN, un server all-in-one che fornisce script C molto veloci.

Non solo G-WAN ha un'impronta di memoria ridicolmente piccola (120 KB) ma è scalabile come nient'altro. C'è del lavoro davanti a te se si esegue la migrazione da PHP, ma è possibile iniziare con le attività critiche sul rendimento e migrare progressivamente.

Abbiamo fatto il salto e non possiamo considerare di tornare ad Apache!

+0

G-WAN sembra molto molto bello! Ti capita di sapere approssimativamente quante connessioni potrebbe gestire al secondo? – Joe

+1

Ho misurato G-WAN a 200.000 richieste al secondo. Dato che l'animale è un processo a 32 bit, c'è spazio per il progresso quando verrà eseguito in codice a 64 bit (tutti gli altri server Web sono molto più veloci quando compilati a 64-bit che a 32-bit). – Frankie

+2

Non sempre. Apache funziona molto più velocemente di nginx su macchine multicore di grandi dimensioni su carichi concomitanti molto hevy (pagine dinamiche). Nginx è adatto per file statici o quando lo utilizziamo come proxy. – iddqd

2

Qui è un grafico che mostra i risultati conseguiti dalla nginx, apache e g-wan:

g-wan.com/imgs/gwan-lighttpd-nginx-cherokee.png~~V~~3rd

apache non sembra per guidare il pacchetto (e questo è un -Quad XEON @ 3GHz).

+0

Si noti che questo grafico proviene direttamente da g-wan, quindi è più probabile che favorisca g-wan. –

1

Ecco un punto di riferimento indipendente per la g-Wan vs nginx, vernici e altri http://nbonvin.wordpress.com/2011/03/14/apache-vs-nginx-vs-varnish-vs-gwan/

g-wan gestisce molto di più richieste al secondo con molto meno tempo di CPU.

+0

Come sai che è indipendente? ;) ... solo curioso. – 0xC0000022L

+0

@STATUS_ACCESS_DENIED, gli autori di g-wan e nginx hanno commentato quel post sul blog e hanno persino suggerito alcune modifiche per il benchmark dei loro server; il che suggerisce per me che il benchmark non era imperfetto ed è stato fatto abbastanza. replicare il benchmark come dettagliato all'inizio di quel post e farci sapere cosa ottieni, indipendentemente;), g-wan ora rivendica una gestione della memoria migliore di nginx che ha consumato la memoria minima di tutti gli altri server web nel benchmark. – Soroush

+0

Abbastanza giusto. +1 – 0xC0000022L

Problemi correlati