Nginx

Nginx (Engine X) è un Web Server utilizzabile anche come reverse proxy che ultimamente ha fatto molto parlare di sé per la sua semplicità di configurazione, le sue alte performance e la sua leggerezza.
A fine di novembre, stando alle statistiche di NetCraft, i server che utilizzano Nginx sono aumentati di oltre 3.5 milioni in 3 mesi, portando questo prodotto alla 4a posizione dei Web Server più utilizzati.

Installazione:

Attualmente sono disponibili pacchetti precompilati per quasi la totalità delle distribuzioni Gnu/Linux , tuttavia molti di essi non sono aggiornati e non contengono tutte le feature aggiunte con l’ultima versione.
Procederemo quindi con la compilazione diretta dei sorgenti scaricabili direttamente dal sito di nginx: http://wiki.nginx.org/NginxInstall .

$ wget http://sysoev.ru/nginx/nginx-0.7.64.tar.gz

$ tar -zxvf nginx-0.7.64.tar.gz
$ cd nginx-0.7.64

Per sistemi Debian i corrispondenti pacchetti per risolvere le dipendenze basilari di nginx sono i seguenti:

libc6 libpcre3 libpcre3-dev libpcrecpp0 libssl0.9.8 libssl-dev
zlib1g zlib1g-dev lsb-base

Le diverse opzioni di configurazione di NginX sono disponibili nel readme o http://wiki.nginx.org/NginxInstallOptions.

$ ./configure –conf-path=/etc/nginx/nginx.conf –error-log-path=/var/log/nginx/error.log –http-log-path=/var/log/nginx/access.log –with-http_ssl_module

(N.d.R: il comando precedente va in realtà tutto su una riga)

$ make

$ su

# make install

Attenzione, di default configure abilita l’http rewrite ma ha bisogno della libreria PCRE (ultima versione: ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.tar.gz ) , se non necessitate di questa funzione basta aggiungere l’opzione –without-http_rewrite_module a configure.

Configurazione:

Scriviamo da 0 un file di configurazione basilare, e salviamolo in /etc/nginx/nginx.conf:

——————-

user  nginx nginx;    # Assegna un utente ed un gruppo ai processi di nginx

worker_processes  2;            # Numero di processi massimi attivabili

error_log          logs/error.log;    # Dove salvare gli error log

pid                logs/nginx.pid;    # Dove salvare il file PID per nginx

worker_rlimit_nofile 8192;        # Il numero massimo di FD che può aprire un processo

events {

worker_connections  4096;        # Massimo numero di connessioni per processo

}

http {

include    conf/mime.types;

default_type application/octet-stream;

log_format   main ‘$remote_addr – $remote_user [$time_local]  $status ‘

‘”$request” $body_bytes_sent “$http_referer” ‘

‘”$http_user_agent” “$http_x_forwarded_for”‘;    #formato in cui verranno salvati i log

access_log   logs/access.log  main;        #Dove salvare gli access log

sendfile     on;
tcp_nopush   on;

server_names_hash_bucket_size 128;

server {                             # Definisce automaticamente un vhost

listen       80;                    # Porta in cui nginx si metterà in ascolto

server_name  pippo.it www.pippo.it;        # DomainName del virtual host

access_log   logs/pippo.it.access.log  main;    #Dove salvare gli access log

root         html;

location / {                        #Directory di Root

index    index.html index.htm index.php;    # File utilizzati come Index

}

}

———–

Lanciare il comando:

	# /usr/local/nginx/sbin/nginx

In questo modo Nginx si metterà in ascolto sulla porta 80 per il dominio pippo.it .

L’esempio è facilmente adattabile ad altri contesti, cambiando pippo.it col proprio nome di dominio.

Nei prossimi articoli introdurremo ulteriori concetti e configurazioni più elaborate.

linux

Articolo precedente

Installare Oracle Database XE su Linux
linux

Articolo successivo

Iptables e Vps, messa in sicurezza