Subsections

15. Approntare il vostro sito per la produzione

Siete giunti ad avere un grosso sito su cui avete speso settimane di lavoro per approntarlo. E siete finalmente pronti per farlo usare al mondo !

Ma state ancora decidendo come utilizzarlo, il che significa: come configurarlo per le macchine di produzione.

15.1 Scelta della configurazione

Durante la fase di sviluppo del vostro sito, siete i soli (forse con qualche altro sviluppatore) ad accedere al sito, così non è necessario sia veloce e robusto. Ma ad un sito per la produzione accederanno molte persone (se siete fortunati). Il che comporta la scelta di una configurazione del CherryPy appropriata in modo da provvedere un servizio veloce e costante ai vostri utenti.

Un criterio per aiutarvi a scegliere una configurazione, include:

Notate che c'è un HowTo chiamato "Sample deployment configuration for a real-world website" che contiene un esempio completo di configurazione raccomandato per la maggior parte dei siti.

15.1.1 Dovrei usare CherryPy HTTP server direttamente o con un altro webserver come Apache ?

La prima decisione da prendere è se usare CherryPy HTTP server direttamente o dietro in altro webserver come Apache. Ecco una lista di vantaggi per ogni metodo:

15.1.1.1 Uso diretto

15.1.1.2 Uso dietro Apache

Una volta deciso se usare CherryPy direttamente o dietro un altro webserver, dovrete decidere fra alcune configurazioni...

15.1.2 Opzioni per utilizzare CherryPy direttamente

Le sezioni che seguono vi mostreranno le diverse opzioni e i loro vantaggi/svantaggi:

15.1.2.1 Single thread/process

Spiegazione: il CherryPy HTTP server verrà eseguito in solo thread/process. Durante l'esame di una richiesta, non ci possono essere altre connessioni.

Vantaggi:

Svantaggi: Conclusione: Questo è il metodo di default e funziona bene per la fase di sviluppo, ma dovrebbe essere vietata per la produzione se avrete diversi utenti che accedono al sito nello stesso momento.

15.1.2.2 Forking server

Spiegazione: il CherryPy HTTP server creerà un nuovo processo per esaminare ogni richiesta. Dopo che è stata inviata la risposta, il processo viene distrutto.

Vantaggi:

Svantaggi: Conclusione: Questo metodo può essere usato su sistemi non-Windows se il traffico non è molto elevato.

15.1.2.3 Threading server

Spiegazione: il CherryPy HTTP server creerà un nuovo thread per esaminare ogni richiesta. Dopo la risposta, il thread è distrutto.

Vantaggi:

Svantaggi: Conclusione: Questo metodo può essere usato per siti con un traffico non molto alto.

15.1.2.4 Process pool

Spiegazione: in questo caso il CherryPy HTTP server creerà un numero fissato di processi all'avvio i quali persisteranno tutto il tempo di vita del server. Se un processo è occupato ad esaminare una richiesta e ne arriva un'altra, un altro processo si prenderà in carico l'esame di questa nuova richiesta.

Vantaggi:

Svantaggi: Conclusione: Questo metodo funziona bene su macchine non-Windows a finché non arrivano centinaia di utenti concorrenti.

15.1.2.5 Thread pool

Spiegazione: questo è il caso un cui il CherryPy HTTP server creerà un numero fissato di thread all'avvio e questi rimarrano attivi per tutto il tempo di vita del server. Se un thread è occupato ad esaminare una richiesta e arriva un'altra richiesta, questa viene presa in carico da un altro thread.

Vantaggi:

Svantaggi: Conclusione: Questo metodo funziona molto bene ed è quello raccomandato in molti casi (finché non ci sono centinaia di utenti concorrenti).

15.1.2.6 Altre alternative

Se avete realmente molto traffico e i metodi sin qui presentanti non sono sufficienti o non potete usarli (se per esempio usate Windows), potete allora usare un generico load-balancing. C'è un HowTo nella documentazione che ne parla.

15.1.3 Opzioni per utilizzare CherryPy dietro in altro webserver

Tutte le configurazioni descritte nella precedente sezione sono disponibili anche utilizzando CherryPy dietro un altro webserver. Webserver di terze parti sono generalmente multi-thread o multi-processo. C'è un HowTo nella documentazione che spiega la configurazione in questo caso.

15.2 Opzioni del file di configurazione

Segue una lista di opzioni che sono usate per specificare come sarà utilizzato il CherryPy server. Tutte queste opzioni sono poste nella sezione [server] del file di configurazione. (confronta il capitolo "Configurare CherryPy").

Alcune di queste opzioni non possono ovviamente essere usate insieme altrimenti causerebbero un conflitto:

See About this document... for information on suggesting changes.