Testeur de priorité et simulateur de correspondance Nginx Location

Testeur de priorité et simulateur de correspondance Nginx Location

Simulateur interactif du noyau C

Guide technique pour tester les directives location Nginx et analyser l'ordre de priorité des modificateurs.

Préréglages :
Simulateur d'URI de requête en direct
CORRESPONDANCE :location ^~ /static/(0.14ms)
GET
Tests rapides :
#1
log_not_found off; ...Exact match bypasses all other rules instantly
#2
RETENU
alias /var/www/spa/static/; ...Preferential prefix: Skips all regex tests for static build assets
#3
expires 7d; ...Regex for root-level and un-prefixed media assets
#4
proxy_pass http://backend_upstream; ...Preferential prefix: Directs all /api/ endpoints to backend
#5
root /var/www/spa/dist; ...Catch-all fallback prefix for client-side HTML5 history routing
CORRESPONDANCE TROUVÉE EN 0.14msHTTP 200 TRAITÉ
location ^~ /static/
Phase 2 : Préfixe prioritaire (^~)

Le préfixe le plus long possède le modificateur « ^~ ». L'évaluation des regex a été entièrement contournée.

Finalité : Preferential prefix: Skips all regex tests for static build assets

Directives actives exécutées :
alias /var/www/spa/static/;
expires 365d;
add_header Cache-Control "public, immutable";

Trace d'évaluation étape par étape (6 étapes)

Évalué selon des phases strictement conformes aux spécifications RFC
Normalisation d'URI et extractionnormalization

Encodage pourcent décodé, barres obliques fusionnées et chaîne de requête séparée.

Request URI: "/static/css/bundle.css"
Normalized:  "/static/css/bundle.css"
Query:       ""
Tier 1 : Exacte (= /favicon.ico)exact

URI "/static/css/bundle.css" != "/favicon.ico".

Préfixe standard: ^~ /static/ [8]prefix scan

URI begins with prefix "/static/" (length 8).

Préfixe standard: ^~ /api/prefix scan

URI "/static/css/bundle.css" does not start with "/api/".

Préfixe standard: (standard) / [1]prefix scan

URI begins with prefix "/" (length 1).

Tier 2 : Préfixe sans RegEx (^~ /static/)preferential check

Le préfixe le plus long possède le modificateur « ^~ ». L'évaluation des regex a été entièrement contournée.

location ^~ /static/ {
  alias /var/www/spa/static/;
  expires 365d;
  add_header Cache-Control "public, immutable";
}

Fidélité à l'algorithme du noyau Nginx et RFC

Simule fidèlement la mécanique du noyau C de Nginx : = correspondance exacte, ^~ préfixe préférentiel, ordre d'évaluation des regex et repli sur le préfixe standard le plus long.

Zéro transmission serveur et latence nulle

Toute la normalisation d'URI, l'analyse d'expressions régulières et le tri par priorité s'exécutent à 100% dans la mémoire du navigateur sans aucune charge réseau.

Génération de configuration de production

Exportez instantanément des blocs de configuration Nginx propres et validés avec commentaires explicatifs et commandes cURL de vérification.

Référence technique et guide d'architecture

Référence Développeur Nginx Location Match Tester — Guide de référence

Guide technique pour tester les directives location Nginx et analyser l'ordre de priorité des modificateurs.

Paramètres clés et contrôles

uristring

Chemin URI de la requête (hors protocole et domaine) évalué par rapport aux blocs location configurés.

Par défaut : "/"
modifier'=' | '^~' | '~' | '~*' | ''

Modificateur de préfixe de location Nginx contrôlant l'ordre d'évaluation, le contournement des regex et l'arrêt anticipé.

Par défaut : ""
pathstring

Modèle de préfixe URI ou expression régulière compatible PCRE évalué par rapport à l'URI normalisée.

Par défaut : "/"
outputTab'trace' | 'batch' | 'ladder' | 'conf'

Onglet actif pour examiner les traces pas-à-pas, les assertions de tests par lots, l'échelle de priorités ou la configuration nginx.conf.

Par défaut : "trace"
inputMode'visual' | 'raw'

Mode d'entrée basculant entre l'édition visuelle par blocs interactifs et l'analyse directe de code brut nginx.conf.

Par défaut : "visual"

Conseils de pro et bonnes practices

Optimiser les assets avec ^~

L'utilisation de location ^~ /static/ désactive l'évaluation coûteuse des regex pour les fichiers statiques, ignorant toutes les règles ultérieures comme ~* \.(jpg|png|css)$.

Ordonner les regex par trafic

Nginx interrompt l'évaluation des regex dès la première correspondance ~ ou ~* dans l'ordre du fichier. Placez toujours les routes à fort trafic en premier.

Match exact sur la racine /

Définir location = / accélère le traitement de la page d'accueil sur les reverse proxies à forte charge en évitant le parcours complet de l'arbre des préfixes.

Tester les URIs normalisées

Nginx décode les caractères encodés comme %20 et fusionne les barres obliques doubles // avant la comparaison. Testez systématiquement les formes brutes et encodées.

Pièges courants et dépannage

Un bloc regex location prévaut de manière inattendue sur un préfixe plus long

Les préfixes sans ^~ ne servent que de solution de secours si aucune regex ne correspond. Ajoutez le modificateur ^~ au bloc de préfixe ou réorganisez les règles regex.

Les paramètres de requête de l'URI ne correspondent pas au chemin location

Nginx teste les directives location uniquement sur $uri et retire les paramètres ($args). Utilisez des directives map ou if ($arg_name) pour traiter les paramètres.

La regex sensible à la casse ~ échoue sur des extensions en majuscules

Remplacez le modificateur ~ par ~* pour activer l'insensibilité à la casse et gérer uniformément des extensions telles que .JPG et .jpg.

Foire aux questions (FAQ)

Quel est l'ordre exact de priorité entre les modificateurs de location Nginx ?▼

Nginx évalue les directives en 5 étapes : 1) Correspondance exacte (=) s'arrête immédiatement en cas de succès ; 2) Recherche du préfixe le plus long parmi les blocs standards ; 3) Si ce préfixe comporte ^~, l'évaluation regex est ignorée et ce bloc gagne ; 4) Les expressions régulières (~ et ~*) sont évaluées de haut en bas (la première qui correspond l'emporte) ; 5) Si aucune regex ne correspond, le préfixe le plus long de l'étape 2 est retenu.

Comment Nginx normalise-t-il les URIs avant de tester les blocs location ?▼

Avant toute comparaison, Nginx décode les séquences encodées en pourcentage (%20 en espace, %2F en /), résout les chemins relatifs . et .., et réduit les barres obliques multiples consécutives (//) en une seule barre. Les paramètres suivant ? sont isolés dans $query_string.

Pourquoi la directive location ne permet-elle pas de filtrer les query strings ou ancres ?▼

Conformément à la norme RFC 3986, le chemin et la query string sont deux composants distincts. Nginx applique la directive location exclusivement au chemin de la ressource. Pour router selon des paramètres d'URL, exploitez $args ou $arg_<nom> via des directives map ou des règles de réécriture.

L'ordre physique des blocs location de préfixe dans nginx.conf influence-t-il le routage ?▼

Non. Contrairement aux blocs d'expressions régulières (~ et ~*), les blocs de préfixe standards ("") et ^~ sont organisés en arbre par Nginx et sélectionnent toujours le préfixe le plus long correspondant (longest prefix match), quel que soit leur ordre dans le fichier.

Les configurations testées ou les jeux d'essais sont-ils transmis à des serveurs distants ?▼

Non. L'ensemble de la normalisation d'URI, de l'analyse syntaxique, de l'évaluation des correspondances et de l'exécution des tests par lots s'exécute intégralement côté client dans le moteur JavaScript de votre navigateur.

Outils et utilitaires connexes

Tous les outils →