Nginx pronunciato "engine x" è un server HTTP e proxy inverso gratuito, open source e ad alte prestazioni che alimenta alcuni dei più grandi siti su Internet.
Rispetto ad Apache, Nginx può gestire un numero molto elevato di connessioni simultanee e ha un footprint di memoria inferiore per connessione.
In questo tutorial, discuteremo come installare e gestire Nginx su sistemi Ubuntu 16.04.
Prerequisiti #
Prima di iniziare con il tutorial, assicurati di aver effettuato l'accesso come utente con privilegi sudo e di non avere Apache o altri servizi in esecuzione sulla porta 80 o 443.
Installa Nginx #
I pacchetti Nginx sono disponibili nei repository software predefiniti di Ubuntu. L'installazione è piuttosto semplice, basta eseguire i seguenti comandi:
sudo apt update
sudo apt install nginx
Una volta completata l'installazione, controlla lo stato del servizio Nginx digitando:
sudo systemctl status nginx
L'output dovrebbe mostrarti che il servizio Nginx è attivo e in esecuzione:
● 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 Sun 2018-01-05 15:44:04 UTC; 1min 59s ago
Main PID: 1291 (nginx)
CGroup: /system.slice/nginx.service
├─1291 nginx: master process /usr/sbin/nginx -g daemon on; master_process on
└─1293 nginx: worker process
Per controllare la versione di Nginx digita:
sudo nginx -v
nginx version: nginx/1.10.3 (Ubuntu)
Regola il firewall #
Supponendo che tu stia usando UFW
per gestire il firewall, dovrai aprire HTTP (80
) e HTTPS (443
) porte.
Puoi farlo abilitando il profilo "Nginx Full" che include regole per entrambe le porte:
sudo ufw allow 'Nginx Full'
Per verificare lo stato del firewall digitare:
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)
Verifica l'installazione #
Per verificare che Nginx funzioni come previsto, apri http://YOUR_IP
nel tuo browser preferito e ti verrà presentata la pagina di benvenuto di Nginx predefinita come mostrato di seguito:
Installa Nginx dal repository Nginx PPA #
I pacchetti Nginx dei repository di Ubuntu sono spesso obsoleti. Per installare l'ultima versione di Nginx, usa il repository PPA ufficiale di Nginx.
Segui i passaggi seguenti per installare l'ultima versione di Nginx su Ubuntu 16.04:
-
Per prima cosa installa il
software-properties-common
pacchetto:sudo apt install software-properties-common
-
Aggiungi il repository Nginx PPA usando il seguente comando:
sudo add-apt-repository ppa:nginx/stable
-
Aggiorna l'elenco dei pacchetti e installa Nginx:
sudo apt update
sudo apt install nginx
-
Al termine dell'installazione, controlla la versione di Nginx con:
sudo nginx -v
L'output sarà simile a questo:
nginx version: nginx/1.12.2
Gestisci il servizio Nginx con systemctl #
Puoi gestire il servizio Nginx allo stesso modo di qualsiasi altra unità di sistema.
-
Per interrompere il servizio Nginx, esegui:
sudo systemctl stop nginx
-
Per avviare il servizio Nginx, digita:
sudo systemctl start nginx
-
Riavvia il servizio Nginx:
sudo systemctl restart nginx
-
Ricarica il servizio Nginx dopo aver apportato alcune modifiche alla configurazione:
sudo systemctl reload nginx
-
Disabilita il servizio Nginx per l'avvio all'avvio:
sudo systemctl disable nginx
-
Riattiva il servizio Nginx per ricominciare all'avvio:
sudo systemctl enable nginx
Struttura e best practice del file di configurazione Nginx #
- Tutti i file di configurazione di Nginx si trovano in
/etc/nginx/
directory. - Il file di configurazione principale di Nginx è
/etc/nginx/nginx.conf
. - Per semplificare 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 del server di cui hai bisogno.
- I file di blocco del server Nginx sono archiviati in
/etc/nginx/sites-available
directory. I file di configurazione trovati in questa directory non vengono utilizzati da Nginx a meno che non siano collegati al/etc/nginx/sites-enabled
directory. - Per attivare un blocco server è necessario creare un collegamento simbolico (un puntatore) dal file di configurazione sites in un
sites-available
nella directorysites-enabled
directory. - È una buona idea seguire una convenzione di denominazione standard, ad esempio se il tuo nome di dominio è
mydomain.com
quindi il tuo file di configurazione dovrebbe essere chiamato/etc/nginx/sites-available/mydomain.com.conf
- Il
/etc/nginx/snippets
contiene frammenti di configurazione che possono essere inclusi nei file di blocco del server. Se utilizzi segmenti di configurazione ripetibili, puoi refactoring di tali segmenti in snippet e includere il file snippet nei blocchi del server. - File di registro Nginx (
access.log
eerror.log
) si trovano in/var/log/nginx/
directory. Si consiglia di avere unaccess
diverso eerror
log per ogni blocco di server. - Puoi impostare la directory principale del documento di dominio in qualsiasi posizione desideri. Le posizioni più comuni per webroot includono:
/home/<user_name>/<site_name>
/var/www/<site_name>
/var/www/html/<site_name>
/opt/<site_name>