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 root@IP_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 nome_utente@IP_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 nome_utente@IP_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 directorysites-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
eerror.log
) si trovano nella directory/var/log/nginx
. Si consiglia di avere file di registro diversiaccess
eerror
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.