Unnikked - Esperienze personali in campo informatico

Come installare nginx su Ubuntu

Nginx è una leggera alternativa ad Apache, è simile a NodeJS, HAProxy e le altre tecnologie “scalabili sul web”. Ha acquisito una notevole popolarità rispetto ad Apache negli ultimi periodi.

Nginx viene eseguito come un singolo processo orientato agli eventi, gestisce ogni richiesta in modo asincrono. Ciò permette la gestione di un gran numero di connessioni concorrenti usando relativamente poca memoria.

Di solito Nginx usa tipicamente pochi processi. Una configurazione tipica di Nginx creerà tanti processi quanti sono le CPU disponibili sul server.

Apache crea processi o thread per ogni connessione, opera in modo sincrono. Ciò significa che ogni processo e thread viene bloccato nel momento in cui esegue un’attività lenta.

Esempi di questi eventi sono la lettura dal file system o l’esecuzione di attività di rete. Si dice in gergo che i processi sono bloccanti, bisogna aspettare il loro termine prima di passarne al successivo.

Mentre Apache crea diversi processi e thread, Nginx crea pochi processi, chiamati “workers”. Ogni processo ha un solo thread. I “lavoratori” di Nginx accettano richieste da un socket condiviso ed esegue l’attività in modo efficiente. E’ asincrono, orientato agli eventi e non bloccante. E’ libero di eseguire altri compiti mentre aspetta che attività lente, come una lettura dal file system o una richiesta su rete, finiscano. Evita l’overhead causato dalla creazione, gestione e distruzione di processi e thread.

Caratteristiche

Le caratteristiche della versione gratuita di Nginx sono:

  • Server Web
  • Reverse Proxy
  • Caching dei contenuti (Web Cache)
  • Load Balancer
  • SSL Terminator

Installazione di Nginx

Useremo la repository “stable” di Nginx durante l’installazione. Essa permetterà di ottenere le ultime versioni stabili che contengono bug fix e aggiornamenti di sicurezza.

Se si ha installato Apache sullo stesso server ed è avviato si manifesterà un errore mentre si avvia Nginx poiché entrambi utilizzano la porta 80. Sarà necessario fermare o disinstallare Apache usando service apache stop.

Per testare le caratteristiche di Nginx consiglio la creazione di una macchina virtuale tramite Vagrant.

Ecco come installare Nginx:

add-apt-repository -y ppa:nginx/stable
sudo apt-get update
sudo apt-get install -y nginx
sudo service nginx start

# per avviarlo di default all'avvio
sudo update-rc.d nginx defaults

Per verificare che il server è installato, interroghiamo il server tramite curl:

curl -I localhost

nginx-installed

Se il risultato è simile a quello mostrato in figura il server è stato correttamente installato.