PHP: Quali sono i vantaggi di FastCGI rispetto a mod_php?


30

Mi è stato recentemente suggerito di utilizzare FastCGI con PHP. Ora sono andato alla pagina FastCGI e l'ho letto, ma non capisco davvero quali siano i vantaggi.

Risposte:


37

Usando mod_php ogni lavoratore Apache ha caricato l'intero interprete PHP. Poiché Apache necessita di un processo di lavoro per ogni richiesta in arrivo, puoi rapidamente finire con centinaia di lavoratori di Apache in uso, ognuno con il proprio interprete PHP caricato, consumando enormi quantità di memoria.

(Nota, questo non è esattamente vero, Apache worker_mpmti consente di servire molte richieste con un singolo lavoratore Apache con thread. Tuttavia, anche nel 2009, questo non è il modo raccomandato per distribuire PHP a causa di sospetti problemi di threading con le estensioni PHP.)

Usando PHP in modalità fast_cgi (usando qualcosa come spawn-fcgi dal pacchetto lighttpd) ha i seguenti vantaggi

  • ottimizzare il numero di lavoratori PHP separatamente dal numero di connessioni in entrata
  • ti consente di collocare i tuoi dipendenti PHP su un altro server o di ridimensionarli su molti server senza cambiare il tuo livello web
  • ti dà la flessibilità di scegliere un server web diverso, come nginx o lighttpd
  • consentono di eseguire l'applicazione PHP in un dominio di sicurezza diverso sul server Web

5

FastCGI significa che i bit php non sono in esecuzione nello stesso processo dei bit apache, a differenza di mod_php. Questa separazione può avere alcuni chiari vantaggi quando si tratta di riavviare il server o gestire le applicazioni in fuga - nel caso mod_php ciò significa che è il processo di apache che è "in fuga", ma in fastcgi è solo un processo con cui Apache sta parlando, quindi l'intero server non deve essere rimosso.


4

Un altro vantaggio non ancora menzionato è il fatto che con mod_fcgid(che è un'implementazione più recente per l'utilizzo di FastCGI su Apache) e suexec è possibile realizzare configurazioni in cui vhosts diversi utilizzano utenti Linux diversi per l'esecuzione, che può essere un vero vantaggio di sicurezza in uno szenario di hosting condiviso .

Con mod_php, tutti i vhosts condividono lo stesso utente, che è l'utente di Apache. Ciò può causare problemi di sicurezza.


Dipende dall'MPM utilizzato in questa particolare configurazione httpd di Apache. Ad esempio con MPM-itk ( mpm-itk.sesse.net ) è possibile usare mod_php e far funzionare gli script (o meglio: i processi httpd) nel contesto di un altro utente.
joschi,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.