Accedi
Accedi

Esempi della direttiva location in Nginx

Esempi della direttiva location in Nginx
Adnene Mabrouk
Redattore tecnico
Server web Nginx
06.02.2026
Reading time: 5 min

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:

  1. Match esatto (=)

  2. Regex (~, ~*) nell’ordine di definizione

  3. 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.

Server web Nginx
06.02.2026
Reading time: 5 min

Simili

Server web Nginx

Come esporre i servizi con Nginx Proxy Manager

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 Identifica il servizioDetermina l’indirizzo IP interno e la porta del servizio da esporre. Crea un proxy hostSegui i passaggi descritti nella sezione “Configurazione di un nuovo proxy host”. Abilita SSLRichiedi un certificato SSL per il dominio associato al servizio. Testa la configurazioneAccedi al servizio tramite il nome di dominio per verificare che tutto funzioni correttamente. Monitora e regolaControlla 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.
29 January 2026 · 6 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