Apache con nginx

Puoi migliorare il funzionamento del server web che ospita i siti web dei tuoi clienti, installando nginx, un server web aggiuntivo ad elevate prestazioni, normalmente utilizzato come server proxy inverso. Questo server web è stato appositamente progettato per distribuire vaste quantità di contenuto statico (come immagini, video, css, xml eccetera). A differenza di Apache, nginx è molto più efficace quando si tratta di gestire un gran numero di connessioni simultanee. Un altro vantaggio di questo server web rispetto ad Apache è che nginx ha un'impronta di memoria significativamente inferiore per connessione client.

Per potenziare i vantaggi di nginx, Plesk lo configura come un server proxy inverso che agisce tra Internet e Apache (vedi grafico sotto). Questo significa che nginx diventa un server web front-end che elabora tutte le richieste in arrivo dai visitatori del sito. Le richieste sono inviate ad Apache, il quale distingue, in cambio, le richieste per il contenuto statico e quello dinamico. Se una richiesta è per un file statico (come jpg, css, html, ecc.), Apache passa la richiesta attraverso tutti i gestori registrati (applica la configurazione a livello della directory .htaccess, riscrive un URL, ecc.) e restituisce a nginx una risposta che contiene soltanto la posizione del file richiesto sul file system. nginx, individua il file e lo invia al client. Se la richiesta è per un file dinamico (come ad esempio, uno script PHP), Apache esegue il file e invia la risposta a nginx, il quale lo consegna al client.

Questo tipo di combinazione tra nginx e Apache offre i seguenti vantaggi:

I dettagli tecnici su come elabora Plesk le richieste HTTP con l'aiuto di nginx sono forniti più avanti in questa sezione. Per maggiori informazioni su come attivare il supporto per nginx in Plesk, consultare la sezione Installazione di nginx. Se non desideri usare nginx, rendi Apache il tuo server web front-end seguendo le istruzioni nella sezione Disattivare nginx.

Come elabora Plesk le richieste HTTP con nginx

Per integrare perfettamente nginx con Apache, Plesk usa due moduli Apache aggiuntivi:

Diamo uno sguardo più da vicino al modo in cui Plesk elabora le richieste per contenuti statici e dinamici con l'aiuto di questi moduli.

La sequenza di elaborazione di una richiesta HTTP per un file statico è la seguente (vedi diagramma):

  1. Un client invia una richiesta a un server web.
  2. nginx aggiunge le intestazioni X-Accel-Internal (usata da mod_aclr2) e X-Forwarded-For (che contiene l'indirizzo IP del client) per la richiesta e invia la richiesta ad Apache.
  3. Apache riceve la richiesta e inizia ad elaborarla dai gestori registrati (applica la configurazione .htaccess, riscrive l'URL eccetera). In questo passaggio, mod_rpaf sostituisce l'indirizzo IP del server nginx nella variabile Apache REMOTE_ADDR con l'indirizzo del client dall'intestazione X-Forwarded-For.
  4. Una volta elaborata la richiesta da tutti i gestori registrati, arriva a mod_aclr2. Il gestore verifica la presenza dell'intestazione X-Accel-Internal. Se l'intestazione è presente, il modulo invia a nginx una risposta con contenuto zero e l'intestazione X-Accel-Redirect. Questa intestazione contiene il percorso esatto del file come determinato da mod_aclr2.
  5. Una volta nginx riceve la risposta, trova il file e lo consegna al client.

Il diagramma seguente è un esempio di come gestisce Plesk una richiesta di un file GIF di 2 KB.

static_seq

Nel caso di elaborare richieste per contenuto dinamico, i passaggi da 1 a 3 sono gli stessi. Quindi la richiesta passa al gestore del modulo Apache appropriato (mod_php, mod_perl, mod_cgi eccetera). La richiesta non arriva mai a mod_aclr2 (eccetto per le richieste SSI). Il gestore genera una risposta e l'invia a nginx, il quale consegna in cambio la risposta al cliente. Il diagramma sottostante illustra il modo in cui Plesk elabora una richiesta per un file PHP.


In questa sezione:

Installazione di nginx

Disattivare nginx

 

Installazione di nginx

Se realizzi un'installazione da zero di Plesk, nginx sarà attivato in modo predefinito. Se aggiorni da versioni precedenti, puoi aggiungere il componente nginx in qualsiasi momento dopo l'aggiornamento in Strumenti e Impostazioni > Aggiornamenti > Aggiungi componenti. Una volta aggiunto il componente, è necessario eseguire il servizio Server proxy inverso (nginx) in Strumenti e Impostazioni > Gestione di Servizi.

Puoi visualizzare la versione del server nginx installato in Strumenti e Impostazioni > Componenti del server.

nginx version

 

Disattivare nginx

Per tornare alla configurazione con un singolo server web Apache, arresta il servizio Server proxy inverso (nginx) in Strumenti e Impostazioni > Gestione di servizi.

nginx_stop

Per rendere nginx il server web front-end nuovamente, avvia il servizio Server proxy inverso (nginx).

Nota: Le operazioni di avvio e di arresto per il servizio Server proxy inverso (nginx) non solo iniziano e arrestano nginx, ma infatti attivano la configurazione del server web (combinazione di nginx e Apache o solo Apache come server web front-end). L'operazione di riavvio funziona nello stesso modo che per tutti gli altri servizi: Il servizio nginx viene riavviato.