Introduzione
Nginx è un server web gratuito e open-source utilizzato per ospitare siti web e applicazioni di tutte le dimensioni. Il software è noto per il suo basso impatto sulle risorse di memoria, l’alta scalabilità e la sua architettura modulare, basata su eventi, che può offrire prestazioni sicure e prevedibili. Più che un semplice server web, Nginx funziona anche come bilanciatore di carico, cache HTTP e proxy inverso.
In questa guida, installerai Nginx sul tuo server Debian 10.
Prerequisiti
Prima di iniziare questa guida, dovresti avere un utente regolare, non root, con privilegi sudo configurato sul tuo server. Dovresti anche avere un firewall attivo. Puoi imparare come configurarlo seguendo la nostra guida alla configurazione iniziale del server per Debian 10.
Passaggio 1 – Installazione di Nginx
Nginx è disponibile nei repository software predefiniti di Debian, rendendo possibile installarlo tramite gli strumenti convenzionali di gestione dei pacchetti.
Prima di tutto, aggiorna l’indice dei pacchetti locali per riflettere le ultime modifiche upstream:
Successivamente, installa il pacchetto nginx
:
Conferma l’installazione, inserendo Y
, quindi premi Invio
per procedere. apt
installerà quindi Nginx e tutte le dipendenze necessarie sul tuo server.
Passaggio 2 – Regolazione del Firewall
Prima di testare Nginx, è necessario modificare le impostazioni del firewall per consentire l’accesso esterno alle porte web predefinite. Presumendo che tu abbia seguito le istruzioni nei prerequisiti, dovresti avere un firewall UFW configurato per limitare l’accesso al tuo server.
Durante l’installazione, Nginx si registra con UFW per fornire alcuni profili di applicazione che possono essere utilizzati per abilitare o disabilitare l’accesso a Nginx attraverso il firewall.
Visualizza l’elenco dei profili di applicazione ufw
digitando:
Dovresti ottenere un elenco dei profili di applicazione:
OutputAvailable applications:
...
Nginx Full
Nginx HTTP
Nginx HTTPS
...
Come puoi vedere, ci sono tre profili disponibili per Nginx:
- Nginx Completo: Questo profilo apre sia la porta
80
(traffico web normale, non criptato) sia la porta443
(traffico crittografato TLS/SSL) - Nginx HTTP: Questo profilo apre solo la porta
80
(traffico web normale, non criptato) - Nginx HTTPS: Questo profilo apre solo la porta
443
(traffico crittografato TLS/SSL)
Si consiglia di abilitare il profilo più restrittivo che consenta comunque il traffico che hai configurato. Poiché non hai ancora configurato TLS/SSL per il tuo server in questa guida, dovrai consentire solo il traffico HTTP sulla porta 80
.
Puoi abilitarlo digitando:
Puoi verificare la modifica digitando:
Cosa appare sono il traffico HTTP consentito nell’output:
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
Passaggio 3 – Verifica del tuo server Web
Alla fine del processo di installazione, Debian 10 avvia Nginx. Il server web dovrebbe già essere attivo e in esecuzione.
Puoi controllare con il sistema di inizializzazione systemd
per assicurarti che il servizio sia in esecuzione digitando:
Output● 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 Tue 2022-06-28 18:42:58 UTC; 49s ago
Docs: man:nginx(8)
Main PID: 2729 (nginx)
Tasks: 2 (limit: 1167)
Memory: 7.2M
CGroup: /system.slice/nginx.service
├─2729 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─2730 nginx: worker process
Questo output rivela che il servizio è stato avviato con successo. Tuttavia, il modo migliore per testarlo è richiedere effettivamente una pagina da Nginx.
Puoi accedere alla pagina di atterraggio predefinita di Nginx per confermare che il software funziona correttamente navigando all’indirizzo IP del tuo server. Se non conosci l’indirizzo IP del tuo server, puoi digitare questo nel prompt dei comandi del tuo server:
Riceverai alcuni risultati. Puoi provare ciascuno nel tuo browser web per vedere se funzionano.
Quando hai l’indirizzo IP del tuo server, inseriscilo nella barra degli indirizzi del tuo browser:
http://your_server_ip
La pagina predefinita di atterraggio di Nginx dovrebbe apparire nel tuo browser web:
Questa pagina è inclusa con Nginx per mostrarti che il server sta funzionando correttamente.
Passaggio 4 – Gestione del processo Nginx
Ora che hai il tuo server web in funzione, puoi esaminare alcuni comandi di gestione di base.
Per interrompere il tuo server web, digita:
Per avviare il server web quando è interrotto, digita:
Per interrompere e quindi avviare nuovamente il servizio, digita:
Se stai apportando modifiche alla configurazione, Nginx può spesso ricaricare senza interrompere le connessioni. Per farlo, digita:
Per impostazione predefinita, Nginx è configurato per avviarsi automaticamente quando il server si avvia. Se questo non è ciò che desideri, puoi disabilitare questo comportamento digitando:
Per riattivare il servizio per l’avvio al boot, puoi digitare:
Passaggio 5 – Configurazione dei Blocchi del Server (Opzionale)
Quando si utilizza il server web Nginx, i blocco server (simili agli host virtuali in Apache) possono essere utilizzati per racchiudere i dettagli di configurazione e ospitare più di un dominio su un singolo server. Nei comandi seguenti, sostituisci il_tuo_dominio
con il tuo nome di dominio. Per saperne di più su come configurare un nome di dominio con DigitalOcean, consulta la nostra introduzione a DigitalOcean DNS.
Nginx su Debian 10 ha un blocco server abilitato per impostazione predefinita che è configurato per servire documenti da una directory in /var/www/html
. Anche se questo funziona bene per un singolo sito, può diventare ingestibile se si stanno ospitando più siti. Invece di modificare /var/www/html
, crea una struttura di directory all’interno di /var/www
per il sito il_tuo_dominio
, lasciando /var/www/html
al suo posto come directory predefinita da servire se una richiesta del client non corrisponde ad altri siti.
Crea la directory per il_tuo_dominio
come segue, utilizzando il flag -p
per creare eventuali directory parent:
Successivamente, assegna la proprietà della directory con la variabile di ambiente $USER
, che dovrebbe fare riferimento al tuo utente di sistema corrente:
Le autorizzazioni della tua radice web dovrebbero essere corrette se non hai modificato il valore del tuo umask
, ma puoi assicurartene digitando:
Successivamente, crea una pagina index.html
di esempio utilizzando nano
o il tuo editor di testo preferito:
All’interno, aggiungi il seguente HTML di esempio:
<html>
<head>
<title>Welcome to your_domain</title>
</head>
<body>
<h1>Success! Your Nginx server is successfully configured for <em>your_domain</em>. </h1>
<p>This is a sample page.</p>
</body>
</html>
Salva e chiudi il file quando hai finito. In nano
puoi farlo premendo CTRL + X
, poi Y
, e poi INVIO
.
Per fare in modo che Nginx serva questo contenuto, devi creare un blocco server con le direttive corrette che puntano alla tua radice web personalizzata. Invece di modificare direttamente il file di configurazione predefinito, ne crea uno nuovo in /etc/nginx/sites-available/il_tuo_dominio
:
Aggiungi il seguente blocco di configurazione, simile a quello predefinito, ma aggiornato per il tuo nuovo directory e nome di dominio:
server {
listen 80;
listen [::]:80;
root /var/www/your_domain/html;
index index.html index.htm index.nginx-debian.html;
server_name your_domain www.your_domain;
location / {
try_files $uri $uri/ =404;
}
}
Nota l’aggiornata configurazione root
alla tua nuova directory e il server_name
al tuo nome di dominio. Ricorda di sostituire il_tuo_dominio
con il tuo effettivo nome di dominio.
Successivamente, abilita questo blocco server creando un collegamento simbolico al tuo file di configurazione personalizzato all’interno della directory sites-enabled
, che Nginx legge durante l’avvio:
Il tuo server ora ha due blocchi server abilitati e configurati per rispondere alle richieste in base alle loro direttive listen
e server_name
(puoi leggere di più su come Nginx elabora queste direttive qui):
il_tuo_dominio
: Risponderà alle richieste peril_tuo_dominio
ewww.il_tuo_dominio
.default
: Risponderà a qualsiasi richiesta sulla porta80
che non corrisponde agli altri due blocchi.
Per evitare un possibile problema di memoria del bucket hash che può sorgere dall’aggiunta di ulteriori nomi server alla tua configurazione, è necessario regolare un singolo valore nel file /etc/nginx/nginx.conf
. Apri il file:
Trova la direttiva server_names_hash_bucket_size
e rimuovi il simbolo #
per decommentare la riga:
...
http {
...
server_names_hash_bucket_size 64;
...
}
...
Salva e chiudi il file quando hai finito.
Successivamente, testa per assicurarti che non ci siano errori di sintassi in nessuno dei tuoi file Nginx:
Se non ci sono problemi, l’output sarà il seguente:
Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Una volta superato il test di configurazione, riavvia Nginx per abilitare le tue modifiche:
Nginx dovrebbe ora servire il nome del tuo dominio. Puoi testarlo navigando su http://tuo_dominio
. L’HTML personalizzato che hai creato nella cartella /var/www/tuo_dominio/html/index.html
dovrebbe essere visualizzato qui:
Passaggio 6 – Conoscere i File e le Directory Importanti di Nginx
Ora che sai come gestire il servizio Nginx stesso, puoi prenderti del tempo per familiarizzare con alcune directory e file importanti.
Contenuto
/var/www/html
: Il contenuto web effettivo, che per default consiste solo nella pagina predefinita di Nginx che hai visto in precedenza, viene servito dalla directory/var/www/html
. Questo può essere cambiato modificando i file di configurazione di Nginx.
Configurazione del Server
/etc/nginx
: La directory di configurazione di Nginx. Tutti i file di configurazione di Nginx risiedono qui./etc/nginx/nginx.conf
: Il file di configurazione principale di Nginx. Questo può essere modificato per apportare modifiche alla configurazione globale di Nginx./etc/nginx/sites-available/
: La directory in cui possono essere memorizzati i blocchi server per sito. Nginx non utilizzerà i file di configurazione trovati in questa directory a meno che non siano collegati alla directorysites-enabled
. Tipicamente, tutta la configurazione del blocco server viene fatta in questa directory e quindi abilitata collegandola all’altra directory./etc/nginx/sites-enabled/
: La directory in cui vengono memorizzati i blocchi server per sito abilitati. Tipicamente, questi vengono creati collegandosi ai file di configurazione trovati nella directorysites-available
./etc/nginx/snippets
: Questa directory contiene frammenti di configurazione che possono essere inclusi altrove nella configurazione di Nginx. I segmenti di configurazione potenzialmente ripetibili sono buoni candidati per la ristrutturazione in snippet.
Registri del server
/var/log/nginx/access.log
: Ogni richiesta al tuo server web viene registrata in questo file di registro a meno che Nginx non sia configurato diversamente./var/log/nginx/error.log
: Eventuali errori di Nginx verranno registrati in questo registro.
Conclusione
Ora che hai installato il tuo server web, hai molte opzioni per il tipo di contenuto che puoi servire e le tecnologie che puoi utilizzare per creare un’esperienza più ricca per i tuoi utenti.
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-debian-10