Document Actions

Introduzione
medio

In questo tutorial affronteremo la configurazione di nginx in come reverse-proxy (senza cache) di Plone.


Nella gestione di un sito "di produzione" è raramente sufficiente il solo utilizzo di Plone. Spesso si rivela necessario (per motivi prestazionali e legati alla gestibilità delle risorse) mettere in piedi una infrastruttura costituita da parecchi elementi:  zeo server, caching proxy server, load balancer ecc.

Uno degli elementi ricorrenti di queste configurazione è il classico apache utilizzato come reverse-proxy.

Lo scopo di mettere un reverse-proxy è fondamentalmente quello di gestire più host virtuali oppure di fornire una cache (nel caso di squid o varnish).

In questa guida sostituirò nginx ad apache nel ruolo di reverse-proxy senza cache allo scopo di esplorarne le caratteristiche, la sua configurazione con plone e le prestazioni.

Nginx

Come riportato nel wiki ufficiale
"Nginx ("engine x") è un server HTTP ad alte prestazioni con possibilità di operare come reverse proxy e IMAP/POP3/SMTP proxy server. Nginx è stato scritto Igor Sysoev per Rambler.ru, il secondo sito più visitato in Russia; da oltre due anni Nginx è in produzione su questo sito. Igor ha rilasciato il codice sotto licenza BSD-like. Anche se ancora in beta, Nginx è conosciuto per la sua stabilità, ricche funzionalità, semplice configurazione e basso consumo di risorse. "

Tra tutti i web server open source nginx è il più diffuso dopo apache e lighttpd. Attualmente ha il tasso di crescita più alto.

Perchè usare Nginx?

Il motivo principale per utilizzare Nginx è il rapporto prestazioni/risorse: contrariamente ad Apache che apre un nuovo processo per ogni richiesta, Nginx usa un piccolo numero fisso di processi che funzionano in modo asincrono (ad esempio sfruttando epoll su linux). In questo modo l'utilizzo di risorse rimane molto più limitato.

Tra le funzionalità che ci interessano ci sono:
- funzione di virtual host basata sull'IP o nome dell'host
- funzione reverse-proxy (senza cache),
- configurazione semplice e flessibile
- riconfigurazione e aggiornamento senza dover riavviare il demone (e quindi senza perdere connessioni)
- funzionalità per il bilanciamento di carico su più server (load balancing di tipo round-robin) e gestione fault tolerance

Per un panorama completo di tutte le funzionalità questo è il wiki ufficiale.

 
by Maurizio Lupo last modified 2008-10-21 13:07