Come configurare un reverse proxy NGINX su Ubuntu 22.04
Usare NGINX come reverse proxy è un’opzione molto diffusa e valida. Per configurare la soluzione basta installare NGINX, creare un file di configurazione e definire le impostazioni del server. Opzionalmente è possibile testare l’esito del processo con Gunicorn.
Configurare NGINX come reverse proxy in Ubuntu 22.04: istruzioni
Per un server web sicuro, flessibile ed efficiente può essere utile usare un reverse proxy. Puoi attivarlo tra client e server web senza che i visitatori e le visitatrici lo notino. Una soluzione molto valida per tutte le richieste in entrata è il reverse proxy NGINX. Nelle sezioni che seguono ti spieghiamo come installarlo e configurarlo su Ubuntu 22.04.
Sempre nella Digital Guide trovi anche la guida all’installazione di NGINX su Ubuntu 20.04. Ti spieghiamo inoltre nel dettaglio cos’è un server proxy e nell’articolo dedicato scopri anche di cosa si tratta quando si parla di NGINX.
Requisiti per la configurazione
Per configurare un reverse proxy NGINX su Ubuntu 22.04 hai bisogno di:
- Un server Ubuntu completamente configurato
- L’indirizzo IP o il socket di dominio Unix del server
- Il dominio del tuo server
- Privilegi
sudo
per il server
- Massima sicurezza dei tuoi dati
- Strumenti di collaborazione per lavorare in team
- Aggiornamenti automatici
Installare NGINX come reverse proxy
Prima di tutto aggiorna il tuo repository dal terminale per ottenere l’accesso agli ultimi pacchetti. Installa quindi NGINX con il comando apt install
. Il codice che ti serve è il seguente:
$ sudo apt update
$ sudo apt install nginx
bashConferma con [Y] e premi [Invio] per applicare le impostazioni.
Configura quindi il tuo firewall in modo che NGINX abbia accesso al tuo server. A questo scopo aggiungi un’eccezione con il comando seguente:
$ sudo ufw allow 'Nginx HTTP'
bashControlla quindi che l’installazione di NGINX sia stata eseguita correttamente. In questo caso il comando da usare è:
$ systemctl status nginx
bashSe NGINX è stato installato correttamente, l’output si presenta come segue:
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 2024-06-24 06:52:46 UTC; 39min ago
Docs: man:nginx(8)
Main PID: 9919 (nginx)
Tasks: 2 (limit: 2327)
Memory: 2.9M
CPU: 50ms
CGroup: /system.slice/nginx.service
├─9919 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
└─9920 "nginx: worker process"
bashCreare il file di configurazione e adattare il server
Configura quindi il tuo blocco server per preparare il reverse proxy NGINX per il tuo sistema in modo ottimale. A questo scopo crea e apri un nuovo file di configurazione con l’editor di testo nano. Inserisci il comando seguente, sostituendo il segnaposto “il_tuo_dominio” con il nome del tuo dominio:
$ sudo nano /etc/nginx/sites-available/il_tuo_dominio
bashDopo aver aperto il file, inserisci al suo interno il contenuto seguente, sostituendo i segnaposti “il_tuo_dominio” e “indirizzo_server” con il dominio e l’IP o il socket di dominio Unix del tuo server:
server {
liste 80;
liste [::]:80;
nome_server il_tuo_dominio www.il_tuo_dominio;
location / {
proxy_pass http://indirizzo_server;
include /etc/nginx/proxy_params;
}
}
txtSalva e chiudi il file. Il contenuto mostrato è la configurazione standard di NGINX. Viene usata la porta 80 per rispondere alle richieste del tuo dominio e del tuo server. proxy_pass
è il componente essenziale per il funzionamento di NGINX come reverse proxy. Se necessario puoi anche configurare altri server.
Crea quindi un link alla directory sites-enabled
a cui NGINX accede inizialmente. A questo scopo usa il comando seguente, sostituendo di nuovo il segnaposto “il_tuo_dominio”:
$ sudo ln -s /etc/nginx/sites-available/il_tuo_dominio/etc/nginx/sites-enabled/
bashA questo punto verifica che la configurazione non presenti errori:
$ sudo nginx -t
bashSe non vengono visualizzati messaggi di errore, ora puoi riavviare il reverse proxy NGINX per applicare tutte le impostazioni. Inserisci il comando seguente:
$ sudo systemctl restart nginx
bashOra la configurazione di NGINX come reverse proxy è conclusa. Nella sezione che segue ti spieghiamo come verificare il proxy. Tuttavia, questa prova non è obbligatoria per la configurazione.
Verificare il reverse proxy NGINX con Gunicorn (opzionale)
Se desideri testare il tuo reverse proxy NGINX, in linea di principio puoi farlo usando il tuo server. Basta richiamarlo dalla shell. In alternativa puoi usare il server web HTTP Gunicorn, che può essere combinato molto bene con il reverse proxy NGINX. Per prima cosa aggiorna i pacchetti e installa il server:
$ sudo apt update
$ sudo apt install gunicorn
bashCrea quindi una funzione semplice che venga inviata al tuo browser come risposta HTTP. Per eseguire questa operazione ricorri di nuovo a nano:
$ nano test.py
bashApri il file e inserisci il codice seguente:
def app(environ, start_response):
start_response("200 OK", [])
return iter([b"Questo è un test"])
txtQuindi salva e chiudi il file. Dopodiché avvia Gunicorn e richiama il modulo di test:
$ gunicorn --worker=2 test:app
bashL’output dovrebbe presentarsi all’incirca come segue:
[2024-06-24 07:09:29 +0000] [10568] [INFO] Starting gunicorn 20.1.0
[2024-06-24 09:14:37 +0000] [10568] [INFO] Listening at: http://127.0.0.1:8000 (10568)
[2024-06-24 09:14:37 +0000] [10568] [INFO] Using worker: sync
[2024-06-24 09:14:37 +0000] [10569] [INFO] Booting worker with pid: 10569
[2024-06-24 09:14:37 +0000] [10570] [INFO] Booting worker with pid: 10570
bashIn questo modo hai ottenuto la conferma che Gunicorn interagisce con l’indirizzo standard http://127.0.0.1:8000
. Come ultimo passaggio apri il browser e richiama il dominio che hai configurato con NGINX. Ora il reverse proxy NGINX visualizza il messaggio “Questo è un test”.