Come installare NGINX su Ubuntu 18.04.

Diamo vita al nostro WebServer

Vedremo come installare NGINX (1.14.0) sull’ultima versione LTS (Long Term Support) di Ubuntu Server (18.04). La procedura  di installazione può essere eseguita anche per la versione desktop.

NGINX è un server web molto potente, flessibile e leggero che può essere facilmente installato sulla piattaforma Linux. Se la vostra distribuzione Linux scelta è Ubuntu, questo processo è ancora più facile.



Perchè installare NGINX

NGINX
NGINX

Apache è stato “il” server web predefinito per anni e per quale motivo si dovrebbe scegliere l’utilizzo di NGINX?  La risposta non è molto semplice !

Per semplificare la risposta, considera che Apache è un server web che fa un lavoro incredibile nel gestire un gran numero di richieste al secondo. Tuttavia, le prestazioni di Apache iniziano ad andare in crisi  quando il numero di  richieste aumentano in maniera esponenziale. Questo significa che, quando il server Apache viene sfruttato in maniera massiva, i tempi di risposta e di erogazione del servizio incominciano a risentirne.  NGINX , invece, è ottimizzato per fornire prestazioni coerenti e prevedibili. Così, anche quando il numero di richieste diventano  elevatissime, NGINX non rallenta. Consideriamo anche che  Apache è molto più flessibile di NGINX avendo a disposizione  una grande quantità di moduli e supporto per altri servizi e server, Apache può (al momento) fare di più di NGINX. Quindi, se le prestazioni sono ciò che stai cercando, NGINX è il tuo server. Se la flessibilità è in cima alla tua lista, Apache dovrebbe essere considerato per primo.

Inoltre NGINX può essere usato anche come un reverse proxy.  Un reverse proxy è un server che si trova tra le applicazioni interne e i client esterni, inoltrando le richieste dei client al server appropriato.  NGINX ha una serie di funzioni avanzate di bilanciamento del carico, sicurezza e accelerazione che lo rendono affidabile e robusto per questo compito.

Bilanciamento del carico – Un server reverse proxy può agire come un “traffic cop”, risiede di  fronte ai server di backend e distribuisce le richieste dei client su un gruppo di server in modo da massimizzare la velocità e l’utilizzo della capacità, assicurando al contempo che nessun server sia sovraccarico. Se un server va in OUT, il load balancer reindirizza il traffico verso i rimanenti server online.

Accelerazione Web – I reverse proxy possono comprimere i dati in entrata e in uscita, così come i contenuti comunemente richiesti in cache, che accelerano entrambi il flusso di traffico tra client e server. Possono anche eseguire attività aggiuntive come la crittografia SSL per scaricare il carico dei vostri server web, migliorando così le loro prestazioni.

Sicurezza e anonimato – Intercettando le richieste dirette ai vostri server di backend, un server reverse proxy protegge le loro identità e funge da ulteriore difesa contro gli attacchi alla sicurezza. Assicura inoltre che sia possibile accedere a più server da un singolo record locator o URL, indipendentemente dalla struttura della rete locale.



Iniziamo

La prima cosa da fare è fermare e disabilitare Apache. Se Apache è in esecuzione sul server, NGINX non può essere installato. Apache può rimanere installato sullo stesso server di NGINX, ma a meno che Apache non venga fermato, NGINX rifiuterà l’installazione. Per scoprire se Apache è in esecuzione, eseguire il comando:

sudo systemctl status apache2

Se Apache è elencato come in esecuzione, è necessario fermarlo e disattivarlo, in modo che NGINX possa essere installato. Per fermare il server web Apache, eseguire il comando:

sudo systemctl stop apache2

e poi

sudo systemctl disable apache2

ora Apache2 è dormiente.

ed ora i canonici

sudo apt-get update

e

sudo apt-get install nginx

e facciamo partire il nostro WebServer

sudo systemctl start nginx
sudo systemctl enable nginx

Ora che NGINX è installato, è possibile puntare il browser web all’indirizzo IP del server di hosting per visualizzare la pagina di benvenuto di NGINX.

È probabile che si verifichi un problema quando si cerca di visualizzare la pagina predefinita di NGINX index.html. Il problema è che, se Apache è stato installato per primo, NGINX servirà per impostazione predefinita la pagina  index.html. Per vedere la pagina di benvenuto di NGINX (index.nginx-debian.html), la pagina di benvenuto di Apache deve essere rinominata. Tornando alla finestra del terminale, eseguire il comando:

sudo mv /var/var/wwwwww/html/index.html /var/wwwww/html/index.html.old

Torna al tuo browser web e ricarica quella pagina. La pagina di benvenuto di Apache dovrebbe ora essere sostituita dalla pagina di benvenuto di NGINX.



Dove mettere le mani?

Con NGINX installato e in esecuzione, è giunto il momento di impostare la prima pagina web. Il metodo di configurazione dei siti in NGINX è molto simile a quello di Apache. Passiamo in rassegna le basi della configurazione di un sito”barebone”. La prima cosa da sapere sono le directory necessarie che ospitano i file utilizzati per creare un sito. Queste directory sono:

/var/wwwww/html – questa è la radice del documento NGINX, dove saranno ospitate tutte le directory e le pagine del tuo sito web.

/etc/nginx/sites-available – questa è la directory che contiene tutti i file di configurazione per ogni sito.

/etc/nginx/sites-enabled – questa è la directory che indica a NGINX quali siti sono effettivamente abilitati per il server.
La differenza tra siti disponibili e siti abilitati è duplice;  i siti disponibili sono file reali per ogni sito creato per il server, i siti abilitati sono collegamenti ai file nei siti disponibili. A meno che non ci sia un link in siti abilitati, NGINX non sarà a conoscenza di un “sito” in siti “disponibili”.

Il nostro primo minisito?

Andiamo di manina …

sudo mkdir /var/www/html/testaiutocomputerhelp

Creiamo un file index.html  e inseriamoci qualcosa:

sudo nano /var/www/html/test/index.html

<H1>Viva GNU/Linux</H1>

salviamo e diamo i permessi

sudo chown www-data:www-data -R /var/www/html/testaiutocomputerhelp
sudo chmod -R 755 /var/www/html/testaiutocomputerhelp

Now create a configuration file for our new site in /etc/nginx/sites-available with the command:

Ora bisogna creare il file di configurazione per il nuovo sito in /etc/ngix/sites-avalable:

sudo nano /etc/nginx/sites-available/test

server {

      listen 80;
      listen [::]:80;
      root /var/www/html/testaiutocomputerhelp;
      index index.html index.htm index.nginx-debian.html;
      server_name _;
      location / {
              try_files $uri $uri/ =404;
      }
}

Salviamo e testiamo la configurazione con:

sudo nginx -t

se è tutto ok …. facciamo ripartire il servizio

sudo systemctl restart nginx

fatto !