# 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](https://www.ionos.it/digitalguide/server/configurazione/ubuntu-server/) 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](https://www.ionos.it/digitalguide/server/know-how/ubuntu-il-sistema-linux-per-tutti/) 22.04.

Consiglio Sempre nella Digital Guide trovi anche la guida all’[installazione di NGINX su Ubuntu 20.04](https://www.ionos.it/digitalguide/server/configurazione/come-installare-nginx-su-ubuntu-2004/). Ti spieghiamo inoltre nel dettaglio cos’è un [server proxy](https://www.ionos.it/digitalguide/server/know-how/che-cose-un-proxy/) e nell’articolo dedicato scopri anche di cosa si tratta quando si parla di [NGINX](https://www.ionos.it/digitalguide/server/configurazione/nginx-basi-installazione-e-configurazione/).

### 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

### 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:

```bash
$ sudo apt update
$ sudo apt install nginx
```

Conferma con \[Y\] e premi \[Invio\] per applicare le impostazioni.

Configura quindi il tuo [firewall](https://www.ionos.it/digitalguide/server/sicurezza/cose-un-firewall/) in modo che NGINX abbia accesso al tuo server. A questo scopo aggiungi un’eccezione con il comando seguente:

```bash
$ sudo ufw allow 'Nginx HTTP'
```

Controlla quindi che l’installazione di NGINX sia stata eseguita correttamente. In questo caso il comando da usare è:

```bash
$ systemctl status nginx
```

Se NGINX è stato installato correttamente, l’output si presenta come segue:

```bash
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"
```

### Creare 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:

```bash
$ sudo nano /etc/nginx/sites-available/il_tuo_dominio
```

Dopo 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:

```txt
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;
    }
}
```

Salva 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”:

```bash
$ sudo ln -s /etc/nginx/sites-available/il_tuo_dominio/etc/nginx/sites-enabled/
```

A questo punto verifica che la configurazione non presenti errori:

```bash
$ sudo nginx -t
```

Se non vengono visualizzati messaggi di errore, ora puoi riavviare il reverse proxy NGINX per applicare tutte le impostazioni. Inserisci il comando seguente:

```bash
$ sudo systemctl restart nginx
```

Ora 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:

```bash
$ sudo apt update
$ sudo apt install gunicorn
```

Crea quindi una funzione semplice che venga inviata al tuo browser come risposta HTTP. Per eseguire questa operazione ricorri di nuovo a nano:

```bash
$ nano test.py
```

Apri il file e inserisci il codice seguente:

```txt
def app(environ, start_response):
	start_response("200 OK", [])
	return iter([b"Questo è un test"])
```

Quindi salva e chiudi il file. Dopodiché avvia Gunicorn e richiama il modulo di test:

```bash
$ gunicorn --worker=2 test:app
```

L’output dovrebbe presentarsi all’incirca come segue:

```bash
[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 (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
```

In 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”.


This is a markdown version of: [https://www.ionos.it/digitalguide/server/configurazione/reverse-proxy-nginx/](https://www.ionos.it/digitalguide/server/configurazione/reverse-proxy-nginx/) for AI/LLM consumption.