Connexion
Connexion

Exemples de directive location Nginx

Exemples de directive location Nginx
Adnene Mabrouk
Rédacteur technique
Serveur web Nginx
06.02.2026
Reading time: 6 min

La directive location de Nginx est un outil puissant pour contrôler la manière dont différents types de requêtes sont traités. En définissant des règles dans les blocs location, vous pouvez appliquer des configurations spécifiques, rediriger le trafic vers différentes parties de votre application ou même refuser complètement certaines requêtes. Une utilisation correcte de cette directive permet une gestion efficace des requêtes, essentielle pour améliorer les performances, la sécurité et les fonctionnalités des applications web.

Syntaxe de base de la directive location

La directive location est définie dans le fichier de configuration nginx.conf :

location [modifier] uri { ... }

  • modifier : paramètre optionnel définissant le type de correspondance (exacte, préfixe, expression régulière, etc.)

  • uri : l’URI à faire correspondre

À l’intérieur des accolades, vous pouvez définir diverses directives comme proxy_pass, root ou index.

Exemple de correspondance exacte

Une correspondance exacte se produit lorsque la chaîne fournie correspond exactement à l’URI demandée.

location = /exact-match {

    root /var/www/html;

    index index.html;

}

Seules les requêtes vers /exact-match seront traitées par ce bloc.

Vous pouvez également utiliser une condition if (notez que Nginx ne possède pas de if-else classique) :

location = /exact-match {

    root /var/www/html;

    index index.html;

    if ($http_user_agent ~* "Chrome") {

        add_header X-Browser "Chrome";

    }

}

Si l’agent utilisateur est Chrome, la réponse inclura l’en-tête supplémentaire X-Browser.

Exemple de correspondance par préfixe

C’est le type le plus courant : il correspond à toute URI commençant par la chaîne spécifiée.

location /prefix {

    root /var/www/html;

    index index.html;

    if ($request_method = POST) {

        return 405;

    }

}

Ce bloc gère toutes les requêtes commençant par /prefix. Si la méthode est POST, Nginx renvoie 405 Method Not Allowed.

Exemple avec expressions régulières

Pour des scénarios plus complexes, vous pouvez utiliser des expressions régulières.

Caractères génériques courants :

  • . correspond à un caractère

  • .* correspond à n’importe quelle séquence

  • ^ début de chaîne

  • $ fin de chaîne

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";

    }

}

Explications :

  • ~* indique une regex insensible à la casse

  • \.php$ correspond aux fichiers PHP

  • si l’URI contient /admin, retour 403

  • sinon, ajout de l’en-tête X-Admin

Correspondance insensible à la casse

location ~* \.jpg$ {

    root /var/www/images;

    if ($http_referer !~* "^https?://(www\.)?example\.com") {

        return 403;

    }

}

Correspond à .jpg, .JPG, etc., et sert les images uniquement si le referer provient de example.com.

Priorité et ordre

Nginx applique les règles suivantes :

  1. Correspondance exacte (=)

  2. Expressions régulières (~, ~*) dans l’ordre de définition

  3. Préfixes (/), le plus long étant prioritaire

Exemple :

location = /exact { }

location ~* \.jpg$ { }

location / { }

Blocs location imbriqués

location /nested {

    location /nested/subnested {

        root /var/www/html;

    }

    root /var/www/html;

}

Les requêtes vers /nested/subnested utilisent le bloc interne.

Exemple réel de serveur 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;

}

}

}

Recharger Nginx

sudo systemctl reload nginx

Tests et débogage

Vérifier la configuration :

sudo nginx -t

Tester les routes :

curl -I http://localhost/about

curl -X POST http://localhost/prefix/form

curl -H "User-Agent: Chrome" http://localhost/exact-match

Consulter les logs :

tail -f /var/log/nginx/access.log

tail -f /var/log/nginx/error.log

Restriction d’accès aux routes sensibles

location /admin {

    allow 192.168.1.100;

    deny all;

}

Seule cette IP aura accès.

root vs alias

Directive

Comportement

root

ajoute l’URI

alias

remplace le préfixe

Exemple :

location /files/ {

    alias /data/downloads/;

}

Remarque : toujours terminer alias par /.

Conclusion

Comprendre la directive location est essentiel pour maîtriser le traitement des requêtes dans Nginx. Les différents types de correspondance (exacte, préfixe, regex) et leurs priorités influencent directement les performances et le comportement du site. En combinant ces mécanismes avec des blocs imbriqués, vous obtenez une configuration propre, efficace et sécurisée.

Serveur web Nginx
06.02.2026
Reading time: 6 min

Similaire

Serveur web Nginx

Comment exposer des services avec Nginx Proxy Manager

Qu’est-ce que Nginx Proxy Manager? Nginx Proxy Manager est une interface facile à utiliser pour gérer des reverse proxies. Il simplifie le routage du trafic vers différents services, le rendant accessible même aux utilisateurs sans connaissances approfondies en réseau. En fournissant une interface graphique (GUI) au-dessus de Nginx, cet outil permet de configurer et de gérer rapidement des proxy hosts, des certificats SSL et diverses configurations avancées, sans avoir à manipuler des commandes complexes en ligne de commande. Installation de Nginx Proxy Manager L’installation de Nginx Proxy Manager est simple grâce à Docker. Voici un guide étape par étape pour le mettre en service : Prérequis Docker et Docker Compose doivent être installés sur votre serveur cloud Une compréhension de base des commandes Docker Étapes d’installation Créez un répertoire pour Nginx Proxy Manager et accédez-y : mkdir nginx-proxy-manager cd nginx-proxy-manager Créez un fichier docker-compose.yml avec le contenu suivant : 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 Démarrez les conteneurs : docker-compose up -d Accédez à Nginx Proxy Manager via l’adresse IP de votre serveur sur le port 81 (par exemple http://localhost:81). Configuration initiale de Nginx Proxy Manager Après l’installation, procédez à la configuration initiale : Connexion :Ouvrez votre navigateur et accédez à http://<ip-de-votre-serveur>:81. Les identifiants par défaut sont : Email : admin@example.com Mot de passe : changeme Modifier les identifiants par défaut :Changez immédiatement l’adresse e-mail et le mot de passe afin de sécuriser Nginx Proxy Manager. Présentation du tableau de bord :Le tableau de bord affiche une vue d’ensemble de vos proxy hosts, certificats SSL et autres paramètres. Prenez le temps de vous familiariser avec l’interface. Configuration d’un nouveau proxy host Pour exposer un service, vous devez créer un nouveau proxy host : Ajouter un nouveau proxy host Allez dans la section « Proxy Hosts » Cliquez sur « Add Proxy Host » Noms de domaine :Saisissez les noms de domaine à associer au service. Plusieurs domaines peuvent être ajoutés en les séparant par des virgules. Nom d’hôte/IP et port de destination :Indiquez l’adresse IP interne et le port du service à exposer.Exemple : pour un service web sur le port 8080, entrez 192.168.1.100 et 8080. Options : Cochez « Block Common Exploits » pour ajouter une couche de sécurité Activez « Websockets Support » si nécessaire SSL :Vous pouvez utiliser un certificat SSL existant ou en demander un nouveau via Let’s Encrypt. Enregistrer :Cliquez sur « Save » pour finaliser la configuration. Gestion des certificats SSL Les certificats SSL sont essentiels pour sécuriser vos services. Nginx Proxy Manager simplifie leur gestion : Demander un nouveau certificat SSL : Accédez à la section « SSL Certificates » Cliquez sur « Add SSL Certificate » Sélectionnez « Let’s Encrypt » et renseignez l’e-mail et le nom de domaine Renouvellement automatique :Les certificats Let’s Encrypt sont renouvelés automatiquement, sans intervention manuelle. Certificats personnalisés :Si vous disposez d’un certificat SSL personnalisé, vous pouvez également le téléverser ici. Options de configuration avancées Nginx Proxy Manager propose plusieurs options avancées : Listes d’accès (Access Lists) : Restreignez l’accès aux services Autorisez ou bloquez le trafic selon les adresses IP Hôtes de redirection (Redirection Hosts) : Configurez facilement des redirections entre domaines Stream Hosts : Gérez le trafic TCP/UDP (SSH, FTP, etc.) Configuration Nginx personnalisée : Ajoutez des directives Nginx spécifiques si nécessaire Exposer des services : guide étape par étape Identifier le serviceDéterminez l’adresse IP interne et le port du service. Créer un proxy hostSuivez les étapes décrites précédemment. Activer SSLDemandez un certificat SSL pour le domaine. Tester la configurationAccédez au service via le domaine. Surveiller et ajusterVérifiez régulièrement les performances. Surveillance et journaux Journaux (Logs) : Consultez-les via la section « Logs » Ils contiennent les IP, chemins de requêtes et codes de réponse Surveillance : Utilisez le tableau de bord pour suivre l’état des proxy hosts et des certificats SSL Vérifiez que les certificats sont à jour et que les services fonctionnent correctement Dépannage des problèmes courants Erreurs de certificat SSL : Vérifiez que le domaine pointe correctement vers l’IP du serveur Assurez-vous que les ports 80 et 443 sont ouverts 502 Bad Gateway : Vérifiez que le service est actif et accessible en interne Confirmez l’adresse IP et le port configurés Délai d’expiration de connexion : Contrôlez les règles du pare-feu Testez la connectivité entre le serveur et le service Conclusion Nginx Proxy Manager simplifie grandement l’exposition des services, ce qui en fait un excellent outil aussi bien pour les débutants que pour les utilisateurs expérimentés. Grâce à son interface conviviale et à ses fonctionnalités avancées, vous pouvez configurer rapidement des reverse proxies, sécuriser vos services avec des certificats SSL et résoudre efficacement les problèmes. En suivant ce guide, vous serez en mesure de gérer et d’exposer vos services de manière efficace avec Nginx Proxy Manager
26 January 2026 · 6 min to read

Avez-vous des questions,
des commentaires ou
des préoccupations ?

Nos professionnels sont disponibles pour vous aider à tout moment,
que vous ayez besoin d'aide ou que vous ne sachiez pas par où commencer.
Envoyez-nous un e-mail
Hostman's Support