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 [email protected]_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 [email protected]_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 [email protected]_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.loge error.log) di Nginx si trovano nella directory /var/log/nginx/. Si consiglia di avere file di registro diversi access e errorper 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.