Introduzione
Nginx è un server HTTP e proxy inverso open source ad alte prestazioni che serve alcuni dei più grandi siti su Internet. Rispetto ad Apache, Nginx è in grado di gestire un numero molto elevato di connessioni simultanee e ha un ingombro di memoria inferiore per connessione.
Nginx può essere utilizzato come server Web autonomo e come proxy inverso per server HTTP e non HTTP.
In questo tutorial, spiegheremo come installare e gestire Nginx su Debian 10 Buster.
Se il vostro intento è installare Nginx su di un server in remoto continuate a leggere, altrimenti se volete installare Nginx sul vostro computer locale saltate il primo paragrafo "Connessione al Server" e leggere 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
Il pacchetto Nginx è incluso nei repository Debian 10 predefiniti. L'installazione è piuttosto semplice, basta eseguire i seguenti comandi come root o utente con privilegi sudo:
sudo apt update
sudo apt install nginx
Il servizio Nginx si avvierà automaticamente al termine del processo di installazione.. Per verificare il tipo di stato:
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 Wed 2020-02-26 22:54:32 CET; 6s ago
Docs: man:nginx(8)
Main PID: 2037 (nginx)
Tasks: 2 (limit: 2301)
Memory: 7.3M
CGroup: /system.slice/nginx.service
├─2037 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─2038 nginx: worker process
Configurare il firewall
Supponendo che si stia utilizzando UFW su Debian per gestire il firewall, è necessario aprire le porte HTTP (80
) e HTTPS (443
). Puoi 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 di Nginx:
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
Puoi testare la tua nuova installazione Nginx connettendoti al tuo indirizzo http://YOUR_IP
nel browser e ti verrà presentata la pagina di destinazione Nginx predefinita, come mostrato nell'immagine qui sotto:
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
Struttura e best practice di Nginx
- I file di configurazione di Nginx sono memorizzati nella directory
/etc/nginx
. - Il file di configurazione principale di Nginx è
/etc/nginx/nginx.conf
. - I file di configurazione del server block (vhost) sono memorizzati nella directory
/etc/nginx/sites-available
. I file di configurazione trovati in questa directory sono usati da Nginx solo quando sono collegati alla directory/etc/nginx/sites-enabled
. - Per attivare i blocchi di un server, creare un collegamento simbolico (un puntatore) dal file di configurazione in una directory
sites-available
alla directorysites-enabled
. - Si consiglia vivamente di seguire la convenzione di denominazione standard, ad esempio, se il nome del proprio dominio è
mydomain.com
utilizzare come nome del file di configurazione del dominio/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 frammenti e includere il file di frammenti nei blocchi del server. - I file di registro (
access.log
eerror.log
) di Nginx 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
Installare Nginx su Debian 10 Buster è una questione di eseguire un singolo comando.