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