Introduzione

Nginx è un server HTTP e proxy inverso ad alte prestazioni open source responsabile della gestione del carico di alcuni dei più grandi siti su Internet. Può essere utilizzato come server Web autonomo, bilanciamento del carico, cache dei contenuti e proxy inverso per server HTTP e non HTTP.

Rispetto ad Apache, Nginx è in grado di gestire un numero molto elevato di connessioni simultanee e ha un ingombro di memoria inferiore per connessione.

Questo tutorial descrive come installare e gestire Nginx su Ubuntu 20.04 LTS.

Prerequisiti

Prima di continuare, assicurati di aver effettuato l'accesso come utente con privilegi sudo e di non avere Apache o altri processi in esecuzione sulla porta 80 o 443.

Se desideri installare Nginx su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi 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

Nginx è disponibile nei repository Ubuntu predefiniti. Per installarlo esegui i seguenti comandi:

sudo apt update
sudo apt install nginx

Una volta completata l'installazione, il servizio Nginx si avvierà automaticamente. Puoi verificarlo eseguendo:

sudo systemctl status nginx

L'output sarà simile al seguente:

● 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 2020-05-04 23:59:35 CEST; 9s ago
       Docs: man:nginx(8)
   Main PID: 67793 (nginx)
      Tasks: 2 (limit: 2286)
     Memory: 4.1M
     CGroup: /system.slice/nginx.service
             ├─67793 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             └─67794 nginx: worker process

May 04 23:59:35 TEST-SERVER-1 systemd[1]: Starting A high performance web server and a reverse proxy server...
May 04 23:59:35 TEST-SERVER-1 systemd[1]: Started A high performance web server and a reverse proxy server.

Questo è tutto. Nginx è stato installato sul tuo computer Ubuntu. È possibile gestire il servizio Nginx come qualsiasi altra unità di sistema.

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

Per riattivarlo di nuovo:

sudo systemctl enable nginx

Configurare firewall

Ora che Nginx è installato e in esecuzione sul server, è necessario assicurarsi che il firewall sia configurato per consentire il traffico sulle porte HTTP (80) e HTTPS (443). Supponendo che si stia utilizzando UFW, è possibile 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:

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

Per testare la tua nuova installazione Nginx, apri il browser e connettiti al tuo indirizzo IP o nome dominio http://YOUR_IP e dovresti vedere la pagina di destinazione Nginx predefinita come mostrato nell'immagine qui sotto.

Struttura e best practice del file di configurazione di Nginx

  • Tutti i file di configurazione di Nginx si trovano nella directory /etc/nginx.
  • Il file di configurazione principale di Nginx è /etc/nginx/nginx.conf.
  • Per facilitare la manutenzione della configurazione di Nginx, si consiglia di creare un file di configurazione separato per ciascun dominio. Puoi avere tutti i file di blocco server di cui hai bisogno.
  • I file di blocco del server Nginx sono memorizzati nella directory /etc/nginx/sites-available. I file di configurazione trovati in questa directory non vengono utilizzati da Nginx a meno che non siano collegati alla directory /etc/nginx/sites-enabled.
  • Per attivare un blocco server, è necessario creare un collegamento simbolico (un puntatore) dai siti dei file di configurazione in una directory sites-available alla directory sites-enabled.
  • Si consiglia di seguire la convenzione di denominazione standard. Ad esempio, se il tuo nome di dominio è mydomain.com allora il tuo file di configurazione dovrebbe essere nominato/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 snippet e includere il file di snippet nei blocchi del server.
  • I file di registro Nginx (access.log e error.log) si trovano nella directory /var/log/nginx. Si consiglia di avere file di registro diversi access e error per 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

Ti abbiamo mostrato come installare Nginx su Ubuntu 20.04 LTS Focal Fossa. Ora puoi iniziare a distribuire le tue applicazioni e utilizzare Nginx come server Web o proxy.