Nginx pronunciato "engine x" è un server HTTP e proxy inverso gratuito, open source e ad alte prestazioni responsabile della gestione del carico di alcuni dei più grandi siti su Internet.
Nginx può essere utilizzato come server Web autonomo e come proxy inverso per Apache e altri server Web.
Rispetto ad Apache, Nginx può gestire un numero molto elevato di connessioni simultanee e ha un footprint di memoria inferiore per connessione.
Questo tutorial delineerà i passaggi necessari per installare Nginx su una macchina Ubuntu 18.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 server web in esecuzione sulla porta 80
o 443
.
Installazione di Nginx #
I pacchetti Nginx sono disponibili nei repository Ubuntu predefiniti. L'installazione è piuttosto semplice.
Inizieremo aggiornando l'elenco dei pacchetti e quindi installeremo Nginx:
sudo apt update
sudo apt install nginx
Una volta completata l'installazione, il servizio Nginx si avvierà automaticamente. Puoi controllare lo stato del servizio con il seguente comando:
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 Sun 2018-04-29 06:43:26 UTC; 8s ago
Docs: man:nginx(8)
Process: 3091 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 3080 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 3095 (nginx)
Tasks: 2 (limit: 507)
CGroup: /system.slice/nginx.service
├─3095 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─3097 nginx: worker process
Configurazione del firewall #
Supponendo che tu stia usando UFW
per gestire il firewall, dovrai aprire HTTP (80
) e HTTPS (443
) porti. Puoi farlo abilitando il profilo "Nginx Full" che include 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)
Verifica l'installazione #
Per testare la tua nuova installazione di Nginx, apri http://YOUR_IP
nel tuo browser preferito e ti verrà presentata la pagina di destinazione Nginx predefinita come mostrato nell'immagine qui sotto:
Gestione del servizio Nginx #
Puoi gestire il servizio Nginx allo stesso modo di qualsiasi altro servizio systemd.
Per interrompere il servizio Nginx, esegui:
sudo systemctl stop nginx
Per ricominciare, digita:
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 all'avvio. Se vuoi 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 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. - Si consiglia di seguire la 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>