Bookmark and Share
Document Actions

Installazione e configurazione
medio

Procediamo! Come installare il prodotto (scaricandolo online o utilizzando il pacchetto della propria distribuzione) e configurarlo.

Installazione

E' possibile scaricare e compilare l'ultima versione dal sito ufficiale oppure utilizzare il pacchetto della propria distribuzione.

Ovviamente compilare dai sorgenti permette di avere l'ultima release del prodotto, mentre la versione pacchettizzata risulta vantaggiosa dal punto di vista della gestione (oltre ad essere assai più veloce da installare).

Installazione dai sorgenti

Ho seguito le indicazioni di questo sito. La distribuzione utilizzata è la Debian (ma vale anche per Ubuntu).
Per compilare è necessario installare (apt-get install) le seguenti dipendenze:
- build-essential (ovviamente tutto il necessario per compilare)
- libgcrypt11-dev
- libcpre-dev (perl regular expression library) necessario per utilizzare le espressioni regolari sugli URL
- libssl-dev (libreria necessaria per https)
- zlib1-dev (zlib per utilizzare il formato gzip previsto da http 1.1)
Dopodiché ho scaricato il pacchetto

wget http://sysoev.ru/nginx/nginx-0.6.32.tar.gz

e l'ho scompattato

tar xvzf nginx-0.6.32.tar.gz

Dopo essere entrato nella cartella ho lanciato

./configure

E' consigliabile prendere nota dei vari percorsi (è possibile cambiarli con apposite opzioni del configure).
Lanciare

make && make install

 

per compilare ed installare

Installare dai pacchetti della nostra distribuzione

Se la versione pacchettizzata della nostra distribuzione è abbastanza aggiornata è possibile installare tutto con

apt-get install nginx

Oltre ad installare il programma, verranno create per noi il file /etc/init.d/nginx, per far partire nginx, e la cartella /etc/nginx con i file di configurazione. In questo caso c'è un file di configurazione principale nginx.conf, la cartella sites-available con dentro tutti i siti disponibili che devono essere linkati sotto sites-enabled per essere attivi (in modo analogo ad apache).

Una delle funzionalità interessanti di Nginx è proprio la possibilità di controllare il programma mediante i segnali (utilizzando il comando kill). Infatti per ricaricare il file di configurazione o per aggiornare a caldo il programma si usano i segnali utilizzando il pid che si trova in uno dei file di nginx:
term,int -> shutdown rapido
quit -> shutdown
hup -> ricarica configurazione (in caso di problemi utilizza la configurazione precedente)
Sul questo sito c'è un reference completo di tutti i segnali.

A questo punto bisogna configurare Nginx come reverse proxy.

Configurazione

Il file di configurazione è abbastanza semplice: è diviso per argomenti raggruppati in parentesi graffe. Ogni argomento contiene una serie di definizioni separate da uno spazio e terminate dal punto e virgola.
A noi interessano le sezioni server: ognuna di queste contiene la configurazione di un server virtuale (virtual host)
quello di default contiene:

server{
    listen 80;
    server_name localhost;
    access_log  /var/log/nginx/localhost.access.log;


    location / {
        root /var/www/nginx-default;
        index index.html index.htm;
    }
}

In questo caso Nginx (in ascolto sulla porta 80), per il server localhost, funziona come webserver statico utilizzando i file nella cartellla /var/www/nginx-default.

La configurazione che serve a noi è questa:

server{
    listen 80;
    server_name www.nostrosito.com;
    access_log  /var/log/nginx/nostrosito.access.log;
    rewrite /(.*) /VirtualHostBase/http/www.nostrosito.com:80/plone/VirtualHostRoot/$1 last;
    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}

L'istruzione rewrite modifica l'url utilizzando l'espressione regolare /(.*) in pratica tutto ciò che nell'url segue il carattere / viene riconosciuto e sostituito con /VirtualHostBase/http/www.nostrosito.com:80/plone/VirtualHostRoot/$1 ($1 corrisponde alla parte riconosciuta racchiusa tra parentesi).
Ad esempio
/pagina1
/(.*)
viene sostituito con
/VirtualHostBase/http/www.nostrosito.com:80/plone/VirtualHostRoot/pagina1

In seguito la location / viene dirottata con l'opzione proxy_pass sul server di Plone (in questo caso http://127.0.0.1:8080). In alternativa è possibile dirottare la connessione su un caching proxy server (ad esempio squid o varnish) oppure verso un load balancer.

L'oggetto di Zope VirtualHostBase farà in modo che tutti gli url utilizzati da Plone punteranno a http://www.nostrosito.com/.

Giusto a titolo di confronto riporto l'analoga configurazione di apache (ricordarsi di abilitare i moduli rewrite e proxy):

RewriteEngine On

RewriteUrl ^/(.*) http://127.0.0.1:8080/VirtualHostBase/http/www.nostrosito.com:80/plone/VirtualHostRoot/$1 [L,F]

 

 
by Maurizio Lupo last modified 2009-01-21 16:11