Installazione di Nginx

postato in: Articoli, Server | 0

Nginx

Salve a tutti! Fino ad oggi abbiamo parlato e utilizzato il web server Apache, quindi ci siamo chiesti quali fossero le altre soluzioni, e dalle nostre ricerche ne abbiamo trovato un altro molto famoso, ossia Nginx.

 

NGINX

Vediamo in generale com'è.

Esso è un web server scritto in C, ed è open source, quindi se siete curiosi e volete dare un’occhiata al codice sorgente, potete andare al seguente link.

 

Ma perché dovremmo preferire Nginx ad Apache? O ancora meglio, cosa ci può portare a scegliere questo web server?

 

Questa scelta dipende molto dalle nostre esigenze.

Nginx è molto più leggero rispetto ad Apache, poiché ha un’architettura differente, che lo rende meno dispendioso in risorse.

 

Spulciando nella documentazione, possiamo dire in generale che esso è utilizzato per servire contenuti statici, proxy server o load balance, mentre se abbiamo un sito dinamico, fatto ad esempio in php, allora ci conviene optare per Apache.

 

Esso ha un’architettura asincrona, e gestisce le richieste tramite un approccio event-driven, e si occupa di pochi thread alla volta.

Mentre Apache, ha un’architettura process-based, ossia ogni richiesta web, è gestita da un processo diverso, il che lo rende molto più dispendioso in termini di risorse.


Vediamo ora come installare e configurare Nginx su Ubuntu.

 

Installazione e configurazione

Come prima cosa aggiorniamo le dipendenze:

 

sudo apt-get update

 

successivamente diamo il seguente comando per installarlo:

 

sudo apt-get install nginx

 

Una volta completata l’installazione, esso sarà già pronto e funzionante, infatti se apriamo il browser, e inseriamo l’indirizzo ip della macchina su cui abbiamo installato il web server, ci verrà mostrata la seguente schermata:

 

nginxhome

 

Come per Apache, anche Nginx utilizza la stessa directory per i contenuti html, ossia:

 

/var/www

 

Per far partire, ripartire o stoppare il web server basta dare il seguente comando:

 

sudo service nginx [start | restart | stop]

 

scegliendo opportunamente start, restart oppure stop.

 

File di configurazione

Come esattamente accadeva per Apache, anche qui possiamo configurare il nostro web server Nginx tramite il suo file di configurazione.

 

Esso lo troviamo nella seguente directory:

 

/etc/nginx/nginx.conf

 

Una volta aperto possiamo notare che le prime tre righe sono come queste:

 

user www-data;

worker_processes 4;

pid /run/nginx.pid;

 

la prima riga ci indica da quale utente viene utilizzato Nginx.

La seconda ci indica quante richieste contemporanee vogliamo che esso gestisca, di default 4.

Infine la terza riga indica il pid a cui il sistema operativo dovrà fare riferimento per interagire con Nginx.

 

Dopo queste tre righe, troviamo diverse sezioni, definite sintatticamente in questo modo: event{...}, http{...}.

 

All’interno di queste sezioni, ci sono delle regole da applicare ad esse. Prendiamo ad esempio la sezione http.

All’interno possiamo inserire nuove regole, o eventualmente modificarne alcune esistenti, per configurare al meglio http.

 

Qui di seguito troviamo alcune delle direttive utilizzate nel file di configurazione.

 

include

Questa direttiva fa in modo di includere altri file di testo dove essa è stata dichiarata. Per esempio, la seguente riga:

 

include /etc/nginx/mime.types;

 

significa che includiamo il contenuto del file mime.types all’interno del blocco http.

 

gzip

Questa direttiva fa in modo di comprimere i dati in uscita dal web server, in modo tale da utilizzare meno banda possibile. Qui trovate una descrizione più dettagliata di gzip.

 

All’interno del blocco http, possiamo trovare anche la seguente riga:

 

include /etc/nginx/sites-enabled/*;

 

essa ci indica che all’interno del file di configurazione, includiamo tutti i file della directory indicata.

In questo caso noi stiamo indicando tutti i virtual host che vogliamo utilizzare nel nostro web server.

Per essere più precisi, in “sites-enabled”, ci sono solamente link simbolici alle varie configurazioni, mentre se vogliamo modificare il file vero e proprio, dobbiamo spostarci all’interno della directory /etc/nginx/sites-avaiable/, questo perché se vogliamo togliere temporaneamente un contenuto dal nostro server, ci basterà rimuovere il link simbolico, senza andar a rimuovere o spostare l’intero file di configurazione.

 

Sempre all’interno di questo file, troviamo altre direttive importanti, come ad esempio listen, che ci indica su quale porta e a quale indirizzo ip il server web deve restare in ascolto.

Un’altra direttiva utilizzata è server_name, che indica il nome del virtual host, utilizzata soprattutto se sul web server ci sono più virtual host.

 

Altre direttive non meno importanti sono access_log, utilizzata per indicare dove i file di log saranno memorizzati.

Root, indica il path dove saranno memorizzati i file dei vari host sulla macchina. Location, le varie directory dei singoli virtual host.

 

Concludendo

In questo post vi abbiamo mostrato una valida alternativa ad Apache, soprattutto se non avete particolari esigenze, se dovete servire contenuti statici e soprattutto se la vostra macchina ha delle risorse limitate.

 

Fonti:

Dottore in Informatica. Da sempre appassionato di Linux, reti informatiche, sicurezza e, in modo amatoriale, all'elettronica. Il mio intento è quello di trasmettere le mie conoscenze ad altri appassionati.

Lascia un commento