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 Buster 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 Mon 2019-11-18 22:54:20 CET; 9s ago
Regola il firewall
Se non utilizzi un firewall non è necessario eseguire questi comandi.
Gli utenti UFW possono aprire le porte HTTP ( 80
) e HTTPS ( 443
) abilitando il profilo 'Nginx Full':
sudo ufw allow 'Nginx Full'
Se si utilizza nftables per filtrare le connessioni al proprio sistema, aprire le porte necessarie eseguendo il comando seguente:
nft add rule inet filter input tcp dport {80, 443} ct state new,established counter accept
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 è una questione di eseguire un singolo comando.