Accedi
Accedi

Come esporre i servizi con Nginx Proxy Manager

Come esporre i servizi con Nginx Proxy Manager
Adnene Mabrouk
Redattore tecnico
Server web Nginx
29.01.2026
Reading time: 6 min

Che cos’è Nginx Proxy Manager?

Nginx Proxy Manager è un’interfaccia facile da usare per la gestione dei reverse proxy. Semplifica il processo di instradamento del traffico verso diversi servizi, rendendolo accessibile anche a chi non ha conoscenze approfondite di networking. Fornendo un’interfaccia grafica (GUI) sopra Nginx, questo strumento consente di configurare e gestire rapidamente proxy host, certificati SSL e varie impostazioni avanzate, senza dover ricorrere a complesse operazioni da riga di comando.

Installazione di Nginx Proxy Manager

L’installazione di Nginx Proxy Manager è semplice grazie a Docker. Di seguito una guida passo passo per avviarlo:

Prerequisiti

  • Docker e Docker Compose installati sul server cloud

  • Conoscenza di base dei comandi Docker

Passaggi di installazione

Crea una directory per Nginx Proxy Manager e accedi ad essa:

mkdir nginx-proxy-manager

cd nginx-proxy-manager

Crea un file docker-compose.yml con il seguente contenuto:

version: '3'

services:

  app:

    image: 'jc21/nginx-proxy-manager:latest'

    restart: always

    ports:

      - '80:80'

      - '81:81'

      - '443:443'

    environment:

      DB_MYSQL_HOST: "db"

      DB_MYSQL_PORT: 3306

      DB_MYSQL_USER: "npm"

      DB_MYSQL_PASSWORD: "npm"

      DB_MYSQL_NAME: "npm"

    volumes:

      - ./data:/data

      - ./letsencrypt:/etc/letsencrypt

  db:

    image: 'mysql:5.7'

    restart: always

    environment:

      MYSQL_ROOT_PASSWORD: 'npm'

      MYSQL_DATABASE: 'npm'

      MYSQL_USER: 'npm'

      MYSQL_PASSWORD: 'npm'

    volumes:

      - ./data/mysql:/var/lib/mysql

Avvia i container:

docker-compose up -d

Accedi a Nginx Proxy Manager tramite l’indirizzo IP del server sulla porta 81 (ad esempio http://localhost:81).

Configurazione iniziale di Nginx Proxy Manager

Dopo l’installazione, procedi con la configurazione iniziale:

Accesso:
Apri il browser e vai su http://<ip-del-server>:81. Le credenziali predefinite sono:

  • Email: admin@example.com

  • Password: changeme

Modifica delle credenziali predefinite:
Aggiorna immediatamente email e password per mettere in sicurezza Nginx Proxy Manager.

Panoramica della dashboard:
La dashboard fornisce una panoramica dei proxy host, dei certificati SSL e delle altre configurazioni. Prenditi del tempo per familiarizzare con l’interfaccia.

Configurazione di un nuovo proxy host

Per esporre un servizio, è necessario configurare un nuovo proxy host:

Aggiungere un nuovo proxy host

  • Vai alla sezione “Proxy Hosts”

  • Clicca su “Add Proxy Host”

Nomi di dominio:
Inserisci i nomi di dominio da associare al servizio. È possibile aggiungerne più di uno separandoli con virgole.

Hostname/IP di destinazione e porta:
Inserisci l’indirizzo IP interno e il numero di porta del servizio da esporre.
Esempio: per un servizio web in esecuzione sulla porta 8080, inserisci 192.168.1.100 e 8080.

Opzioni:

  • Seleziona “Block Common Exploits” per aggiungere un livello di sicurezza

  • Abilita “Websockets Support” se il servizio lo richiede

SSL:
Puoi utilizzare un certificato SSL esistente oppure richiederne uno nuovo tramite Let’s Encrypt.

Salva:
Clicca su “Save” per completare la configurazione del proxy host.

Gestione dei certificati SSL

I certificati SSL sono fondamentali per la sicurezza dei servizi. Nginx Proxy Manager rende il processo semplice:

Richiedere un nuovo certificato SSL:

  • Vai alla sezione “SSL Certificates”

  • Clicca su “Add SSL Certificate”

  • Seleziona “Let’s Encrypt” e inserisci i dettagli richiesti, inclusi email e nome di dominio

Rinnovo automatico:
Nginx Proxy Manager rinnova automaticamente i certificati Let’s Encrypt, garantendo la sicurezza continua dei servizi.

Certificati personalizzati:
Se disponi di un certificato SSL personalizzato, puoi caricarlo in questa sezione.

Opzioni di configurazione avanzate

Nginx Proxy Manager offre diverse opzioni avanzate per ottimizzare la configurazione:

Liste di accesso (Access Lists):

  • Limita l’accesso ai servizi

  • Consenti o nega il traffico in base agli indirizzi IP

Host di reindirizzamento (Redirection Hosts):

  • Configura facilmente reindirizzamenti da un dominio a un altro

Stream Hosts:

  • Gestisci il traffico TCP/UDP, ad esempio per servizi SSH o FTP

Configurazione Nginx personalizzata:

  • Aggiungi direttive Nginx personalizzate se il servizio richiede configurazioni specifiche

Esporre servizi: guida passo per passo

  1. Identifica il servizio
    Determina l’indirizzo IP interno e la porta del servizio da esporre.

  2. Crea un proxy host
    Segui i passaggi descritti nella sezione “Configurazione di un nuovo proxy host”.

  3. Abilita SSL
    Richiedi un certificato SSL per il dominio associato al servizio.

  4. Testa la configurazione
    Accedi al servizio tramite il nome di dominio per verificare che tutto funzioni correttamente.

  5. Monitora e regola
    Controlla regolarmente le prestazioni del servizio e modifica le impostazioni se necessario.

Monitoraggio e log

Log:

  • Accedi ai log tramite la sezione “Logs”

  • I log includono informazioni dettagliate sulle richieste in ingresso, come indirizzi IP, percorsi delle richieste e stati di risposta

Monitoraggio:

  • Usa la dashboard per controllare lo stato dei proxy host e dei certificati SSL

  • Assicurati che i certificati SSL siano aggiornati e che tutti i servizi funzionino correttamente

Risoluzione dei problemi comuni

Errori dei certificati SSL:

  • Verifica che il dominio punti correttamente all’IP del server

  • Controlla che le porte 80 e 443 siano aperte e accessibili

502 Bad Gateway:

  • Assicurati che il servizio esposto sia in esecuzione e accessibile internamente

  • Verifica di aver inserito correttamente IP interno e porta nelle impostazioni del proxy host

Timeout di connessione:

  • Controlla le impostazioni del firewall

  • Testa la connettività tra il server e il servizio

Conclusione

Nginx Proxy Manager semplifica notevolmente il processo di esposizione dei servizi, rendendolo uno strumento eccellente sia per principianti che per utenti esperti. Grazie alla sua interfaccia intuitiva e alle funzionalità avanzate, puoi configurare e gestire rapidamente i reverse proxy, proteggere i servizi con certificati SSL e risolvere eventuali problemi. Seguendo i passaggi descritti in questa guida, potrai gestire ed esporre i servizi in modo efficiente con Nginx Proxy Manager.

Server web Nginx
29.01.2026
Reading time: 6 min

Simili

Server web Nginx

Esempi della direttiva location in Nginx

La direttiva location di Nginx è uno strumento potente per controllare il modo in cui vengono gestite le diverse richieste. Definendo regole nei blocchi location, puoi applicare configurazioni specifiche, indirizzare il traffico verso parti diverse dell’applicazione oppure bloccare completamente alcune richieste. Un uso corretto di questa direttiva consente una gestione efficiente delle richieste, fondamentale per migliorare prestazioni, sicurezza e funzionalità delle applicazioni web. Sintassi di base della direttiva location La direttiva location è definita nel file di configurazione nginx.conf: location [modifier] uri { ... } modifier: parametro opzionale che definisce il tipo di corrispondenza (esatta, prefisso, regex) uri: l’URI da confrontare All’interno delle parentesi graffe puoi inserire varie istruzioni come proxy_pass, root o index. Esempio di corrispondenza esatta Una corrispondenza esatta avviene quando la stringa specificata coincide perfettamente con l’URI richiesto. location = /exact-match {     root /var/www/html;     index index.html; } Solo le richieste verso /exact-match verranno elaborate da questo blocco. Puoi anche usare una condizione if (nota che Nginx non supporta un vero if-else): location = /exact-match {     root /var/www/html;     index index.html;     if ($http_user_agent ~* "Chrome") {         add_header X-Browser "Chrome";     } } Se lo user agent è Chrome, la risposta includerà l’header X-Browser. Esempio di corrispondenza per prefisso È il tipo più comune: corrisponde a qualsiasi URI che inizi con la stringa indicata. location /prefix {     root /var/www/html;     index index.html;     if ($request_method = POST) {         return 405;     } } Questo blocco gestisce tutte le richieste che iniziano con /prefix. Se il metodo è POST, Nginx restituisce 405 Method Not Allowed. Esempio con espressioni regolari Per scenari più complessi puoi usare le regex. Caratteri jolly comuni: . qualsiasi carattere .* qualsiasi sequenza ^ inizio stringa $ fine stringa location ~* \.php$ {     fastcgi_pass 127.0.0.1:9000;     fastcgi_index index.php;     include fastcgi_params;     if ($request_uri ~* "/admin") {         return 403;     }     if ($request_uri !~* "/admin") {         add_header X-Admin "Not Admin";     } } Spiegazione: ~* indica regex case-insensitive \.php$ intercetta i file PHP se l’URI contiene /admin, ritorna 403 altrimenti aggiunge l’header X-Admin Corrispondenza senza distinzione tra maiuscole/minuscole location ~* \.jpg$ {     root /var/www/images;     if ($http_referer !~* "^https?://(www\.)?example\.com") {         return 403;     } } Corrisponde a .jpg, .JPG, ecc., e serve le immagini solo se il referer proviene da example.com. Priorità e ordine Nginx segue queste regole: Match esatto (=) Regex (~, ~*) nell’ordine di definizione Prefissi (/), dove vince il più lungo Esempio: location = /exact { } location ~* \.jpg$ { } location / { } Blocchi location annidati location /nested {     location /nested/subnested {         root /var/www/html;     }     root /var/www/html; } Le richieste verso /nested/subnested usano il blocco interno. Esempio reale di server web server { listen 80; server_name localhost;   location / { root /var/www/html; index index.html; }   location = /about { root /var/www/html; index about.html; }   location /api { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }   location ~ \.php$ { root /var/www/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; }   location ~* \.(jpg|jpeg|png|gif|ico)$ { root /var/www/images; }   location /admin { root /var/www/admin; index index.html;   location /admin/stats { proxy_pass http://localhost:8080/stats; } } } Ricaricare Nginx sudo systemctl reload nginx Test e debug Controlla la configurazione: sudo nginx -t Test delle route: curl -I http://localhost/about curl -X POST http://localhost/prefix/form curl -H "User-Agent: Chrome" http://localhost/exact-match Log: tail -f /var/log/nginx/access.log tail -f /var/log/nginx/error.log Limitare l’accesso a percorsi sensibili location /admin {     allow 192.168.1.100;     deny all; } Solo quell’IP potrà accedere. root vs alias Direttiva Comportamento root aggiunge l’URI alias sostituisce il prefisso Esempio: location /files/ {     alias /data/downloads/; } Nota: con alias, termina sempre il percorso con /. Conclusione Comprendere a fondo la direttiva location è fondamentale per gestire correttamente le richieste in Nginx. I diversi tipi di match (esatto, prefisso, regex) e le loro priorità influiscono direttamente su prestazioni e comportamento del sito. Usando anche i blocchi annidati, puoi creare configurazioni pulite, efficienti e altamente controllate.
06 February 2026 · 5 min to read

Hai domande,
commenti o dubbi?

I nostri professionisti sono disponibili per assisterti in ogni momento,
che tu abbia bisogno di aiuto o non sappia da dove iniziare.
Inviaci un'email
Hostman's Support