Nginx è un server HTTP e proxy inverso open source ad alte prestazioni che alimenta 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 per installare e gestire Nginx su una macchina Debian.
Prerequisiti #
Prima di iniziare con il tutorial, assicurati di aver effettuato l'accesso come utente con privilegi sudo.
Installa Nginx #
L'installazione è piuttosto semplice. Segui i passaggi seguenti per installare Nginx sul tuo sistema Debian:
-
Aggiorna l'indice dei pacchetti:
sudo apt update
-
Installa il pacchetto Nginx:
sudo apt install nginx
-
Il servizio Nginx si avvierà automaticamente al termine del processo di installazione. Puoi verificarlo eseguendo il seguente
curl
comando:curl -I 127.0.0.1
HTTP/1.1 200 OK Server: nginx/1.10.3 Date: Mon, 27 Aug 2018 22:29:02 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Mon, 27 Aug 2018 22:27:54 GMT Connection: keep-alive ETag: "5b847aea-264" Accept-Ranges: bytes
Regola il firewall #
Se utilizzi iptables per filtrare le connessioni al tuo sistema, dovrai aprire HTTP (80
) e HTTPS (443
) porte.
Apri le porte necessarie eseguendo il seguente comando:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Gestisci il servizio Nginx con systemctl #
Puoi usare il systemctl
comando per gestire il servizio Nginx, come qualsiasi altra unità 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
Disabilita 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 #
- I file di configurazione di Nginx sono archiviati in
/etc/nginx
directory. - Il file di configurazione principale di Nginx è
/etc/nginx/nginx.conf
. - I file di configurazione del blocco del server (vhost) 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. - L'attivazione dei blocchi del server viene eseguita creando un collegamento simbolico (un puntatore) dai siti del file di configurazione in un
sites-available
nella directorysites-enabled
directory. - Per scrivere codice più gestibile, è una buona idea seguire una convenzione di denominazione standard. Ad esempio, se il tuo nome di dominio è
mydomain.com
quindi il 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>