Examiner les blocs Nginx et règles location

Collez une configuration pour la vérifier, puis testez un chemin contre les règles location. Le comparateur applique l’ordre de Nginx : correspondance exacte, préfixe le plus long, puis expressions régulières ; le chemin est normalisé comme dans Nginx.

Fonctionne localement dans votre navigateur
Tout dans cet outil est traité dans ce navigateur. VoriTools ne télécharge pas, ne stocke pas et n’appelle aucune API tierce avec votre entrée.
Configuration NginxCollez un ou plusieurs blocs de serveur ; aucun hôte n’est contacté.

Comment vérifier un bloc Nginx et un chemin

Nginx choisit la règle location qui répond à une requête dans un ordre fixe : d’abord la correspondance exacte avec =, puis le préfixe le plus long, et enfin les expressions régulières dans leur ordre d’écriture. Le comparateur suit cet ordre et normalise le chemin comme Nginx : le résultat est donc la règle que Nginx appliquerait.

Le rapport reste une aide à la relecture. Il ne lit que le texte collé, et nginx -t sur la machine qui sert le site reste la référence pour savoir si le fichier se charge.

  1. Collez un ou plusieurs blocs server, ou cliquez sur Charger un exemple pour partir d’une configuration qui fonctionne.
  2. Cliquez sur Vérifier la configuration et lisez le rapport ; l’analyse reste dans ce navigateur.
  3. Saisissez un chemin comme /api/projects/42, puis cliquez sur Tester la location pour voir quelle règle répond et pourquoi.
  4. Modifiez le bloc, relancez la vérification et confirmez le fichier avec nginx -t avant de recharger le serveur.

Ordre des règles location, guillemets et aperçu du chemin

Comment Nginx choisit une location

Une correspondance exacte comme location = /health gagne immédiatement. Sinon le préfixe correspondant le plus long est retenu ; si ce préfixe porte ^~, les expressions régulières sont ignorées et le préfixe traite la requête.

Sans ^~, les expressions régulières sont essayées dans leur ordre d’écriture et la première qui correspond gagne ; si aucune ne correspond, le préfixe retenu traite la requête. Les locations imbriquées dans un préfixe correspondant sont cherchées de la même façon : un ^~ ou une expression régulière imbriqués peuvent donc devancer une règle écrite plus bas.

Ce que le rapport vérifie

Le rapport signale des accolades ou des guillemets déséquilibrés, l’absence de bloc server, un server_name manquant, une écoute sur le port 80 sans redirection return 30x évidente, proxy_pass sans proxy_set_header Host et proxy_pass sans X-Forwarded-For ni X-Forwarded-Proto. Le port 80 est reconnu sous les formes 80, *:80, 0.0.0.0:80 et [::]:80.

Il signale aussi les motifs location qui utilisent des accolades sans guillemets : Nginx refuse de charger un fichier comme location ~ ^/p/[0-9]{3}$ { } et s’arrête sur unknown directive. Quand toutes les vérifications passent, le rapport le dit au lieu d’inventer un constat.

Guillemets, échappements et aperçu du chemin

Entourez de guillemets une expression régulière qui contient des accolades : location ~ "^/p/[0-9]{3}$" { } se charge, la forme sans guillemets non. L’aperçu décode les échappements de pourcentage, fusionne les barres répétées et résout . et .., donc /a//b, /a/./b et /a/x/../b atteignent tous location = /a/b.

La comparaison distingue les majuscules, sauf pour les règles en ~*. Les locations nommées (location @nom) sont listées mais jamais choisies à partir d’un chemin, et les directives rewrite, try_files ou error_page ne sont pas suivies : lisez le résultat comme la première étape de routage effectuée par Nginx.

Outils récents :