Nginx è un server HTTP e proxy inverso open source ad alte prestazioni che serve alcuni dei più grandi siti su Internet. Rispetto ad Apache, Nginx è in grado di gestire un numero molto elevato di connessioni simultanee e ha un ingombro di memoria inferiore per connessione.

Nginx può essere utilizzato come server Web autonomo e come proxy inverso per server HTTP e non HTTP.

In questo tutorial, spiegheremo come installare e gestire Nginx su Ubuntu 18.04 LTS.

Se il vostro intento è installare Nginx su di un server in remoto continuate a leggere, altrimenti se volete installare Nginx sul vostro computer locale saltate il primo paragrafo "Connessione al Server" e leggere il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh [email protected]_DEL_SERVER

Successivamente sarà necessario inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:

ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh [email protected]_DEL_SERVER -p PORTA

Installare Nginx

Il pacchetto Nginx è incluso nei repository Ubuntu 18.04 predefiniti. L'installazione è piuttosto semplice, basta eseguire i seguenti comandi come root o utente con privilegi sudo:

sudo apt update
sudo apt install nginx

Il servizio Nginx si avvierà automaticamente al termine del processo di installazione.. Per verificare il tipo di stato:

sudo systemctl status nginx

L'output sarà simile a questo:

 nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2019-11-18 22:54:20 CET; 9s ago

Configurare il firewall

Supponendo che si stia utilizzando UFW per gestire il firewall, è necessario aprire le porte HTTP ( 80) e HTTPS ( 443). Puoi farlo abilitando il profilo 'Nginx Full' che include le regole per entrambe le porte:

sudo ufw allow 'Nginx Full'

Per verificare il tipo di stato di Nginx:

sudo ufw status

L'output sarà simile al seguente:

Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
Nginx Full                 ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
Nginx Full (v6)            ALLOW       Anywhere (v6)

Testare l'installazione

Puoi testare la tua nuova installazione Nginx connettendoti al tuo indirizzo http://YOUR_IP nel browser e ti verrà presentata la pagina di destinazione Nginx predefinita, come mostrato nell'immagine qui sotto:

Gestione del servizio Nginx

È possibile gestire il servizio Nginx allo stesso modo di qualsiasi altro servizio systemd.

Per interrompere il servizio Nginx, eseguire:

sudo systemctl stop nginx

Per avviarlo di nuovo, digitare:

sudo systemctl start nginx

Per riavviare il servizio Nginx:

sudo systemctl restart nginx

Ricarica il servizio Nginx dopo aver apportato alcune modifiche alla configurazione:

sudo systemctl reload nginx

Per impostazione predefinita, il servizio Nginx verrà avviato in automatico all'avvio. Se si desidera disabilitare il servizio Nginx per l'avvio all'avvio:

sudo systemctl disable nginx

E per riattivarlo di nuovo:

sudo systemctl enable nginx

Struttura e best practice di Nginx

  • I file di configurazione di Nginx sono memorizzati nella directory /etc/nginx.
  • Il file di configurazione principale di Nginx è /etc/nginx/nginx.conf.
  • I file di configurazione del server block (vhost) sono memorizzati nella directory /etc/nginx/sites-available. I file di configurazione trovati in questa directory sono usati da Nginx solo quando sono collegati alla directory /etc/nginx/sites-enabled.
  • Per attivare i blocchi di un server, creare un collegamento simbolico (un puntatore) dal file di configurazione in una directory sites-available alla directorysites-enabled.
  • Si consiglia vivamente di seguire la convenzione di denominazione standard, ad esempio, se il nome del proprio dominio è mydomain.com utilizzare come nome del file di configurazione del dominio /etc/nginx/sites-available/mydomain.com.conf.
  • La directory /etc/nginx/snippets contiene frammenti di configurazione che possono essere inclusi nei file di blocco del server. Se si utilizzano segmenti di configurazione ripetibili, è possibile trasformare tali segmenti in frammenti e includere il file di frammenti nei blocchi del server.
  • I file di registro ( access.loge error.log) di Nginx si trovano nella directory /var/log/nginx/. Si consiglia di avere file di registro diversi access e errorper ciascun blocco server.
  • È possibile impostare la directory principale del documento di dominio in qualsiasi posizione desiderata. Le posizioni più comuni per webroot includono:
  • /home/<user_name>/<site_name>
  • /var/www/<site_name>
  • /var/www/html/<site_name>
  • /opt/<site_name>

Conclusione

Installare Nginx su Ubuntu 18.04 LTS è una questione di eseguire un singolo comando.