Nginx Location優先順位テスター & マッチシミュレーター

Nginx Location優先順位テスター & マッチシミュレーター

インタラクティブCコア照合機

Nginx locationディレクティブのマッチングルール検証ガイド。修飾子優先順位(=、^~、~、~*)のリアルタイムシミュレーション。

プリセット:
リアルタイムURI照合シミュレーター
マッチ確定:location ^~ /static/(0.32ms)
GET
クイックテスト:
#1
log_not_found off; ...Exact match bypasses all other rules instantly
#2
勝者マッチ
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
マッチ解決時間: 0.32ms正常処理(HTTP 200)
location ^~ /static/
フェーズ2: 優先プレフィックス (^~)

最長一致プレフィックスが「^~」修飾子を持つため、正規表現の走査を完全にバイパスして即座に採用されました。

目的・用途: Preferential prefix: Skips all regex tests for static build assets

実行される有効ディレクティブ:
alias /var/www/spa/static/;
expires 365d;
add_header Cache-Control "public, immutable";

ステップ別評価トレース (6 ステップ)

Nginx RFC仕様に準拠した厳格なフェーズ順で評価
URIの正規化とクエリ分離normalization

パーセントエンコードを解除し、連続するスラッシュを統合、クエリ文字列を分離して照合用ターゲットを正規化しました。

Request URI: "/static/css/bundle.css"
Normalized:  "/static/css/bundle.css"
Query:       ""
Tier 1: 完全一致 (= /favicon.ico)exact

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

標準プレフィックス: ^~ /static/ [8]prefix scan

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

標準プレフィックス: ^~ /api/prefix scan

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

標準プレフィックス: (standard) / [1]prefix scan

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

Tier 2: 正規表現抑止プレフィックス (^~ /static/)preferential check

最長一致プレフィックスが「^~」修飾子を持つため、正規表現の走査を完全にバイパスして即座に採用されました。

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

RFC準拠とNginxコアアルゴリズムの忠実性

NginxのCコアマッチングアルゴリズム(= 完全一致、^~ 優先プレフィックス、正規表現の出現順序、最長標準プレフィックスへのフォールバック)を忠実にシミュレートします。

ゼロサーバー送信・ゼロレイテンシー

URIの正規化、正規表現の構文解析、優先度判定はすべてブラウザのメモリ内で完結。外部サーバーへの通信は一切発生しません。

本番対応コンフィグ生成

検証済みのクリーンなNginx設定ブロックを即座に出力。解説コメントとcurlによる診断検証コマンドも自動生成します。

技術リファレンス&アーキテクチャガイド

Nginx Location優先順位テスター & マッチシミュレーター — リファレンスガイド

Nginx locationディレクティブのマッチングルール検証ガイド。修飾子優先順位(=、^~、~、~*)のリアルタイムシミュレーション。

主要パラメータ&設定項目

uristring

検証対象のリクエストURIパス(プロトコルやドメインを除外)。定義された各locationディレクティブと照合されます。

初期値: "/"
modifier'=' | '^~' | '~' | '~*' | ''

評価優先順位、正規表現評価スキップ、早期終了を制御するNginxのlocation修飾子。

初期値: ""
pathstring

正規化済みリクエストURIと照合されるパスプレフィックス文字列またはPCRE互換正規表現。

初期値: "/"
outputTab'trace' | 'batch' | 'ladder' | 'conf'

ステップ実行トレース、一括テスト検証、優先順位ラダー、nginx.conf設定出力を切り替える表示タブ。

初期値: "trace"
inputMode'visual' | 'raw'

ビジュアルカード編集とnginx.conf生テキスト構文解析を切り替える設定入力方式。

初期値: "visual"

プロの活用テクニック&推奨設定

^~で静的配信を高速化

location ^~ /static/ を指定すると静的ファイル配信時に正規表現スキャンを完全に回避し、後続の ~* \.(jpg|png|css)$ などの評価負荷を削減できます。

頻出正規表現を上位に配置

Nginxは ~ および ~* の正規表現ブロックを設定ファイル記述順に評価し最初の合致で終了するため、アクセス頻度が高いルールを上部に記述してください。

完全一致でルート負荷軽減

高トラフィックなリバースプロキシでは location = / を定義することで、トップページへのリクエストを最優先で即時解決しプレフィックス走査を省略できます。

URL正規化後の挙動を検証

Nginxは %20 のデコードや // の単一スラッシュへの統合を行ってからマッチ判定を実行します。生URLとエンコード済みURLの両方で整合性を確認してください。

よくあるトラブルと解決策

長いプレフィックスブロックより正規表現locationが優先されてしまう

^~ が付いていないプレフィックスブロックは正規表現で不一致だった場合のフォールバックとして扱われます。正規表現の評価をスキップするにはプレフィックスブロックに ^~ 修飾子を付与してください。

リクエストURIに付加したクエリストリングがlocationパスに合致しない

Nginxはlocationのマッチングを正規化された $uri のみに対して実行し、クエリストリング($args)を分離します。パラメータ判定にはlocationではなく map や if ($arg_name) を使用してください。

大文字小文字混在の拡張子に対して正規表現 ~ が一致しない

大文字小文字を区別する ~ ではなく、大文字小文字を区別しない ~* 修飾子を使用することで、.JPG や .png などの混在環境でも正しくルーティングされます。

よくある質問 (FAQ)

Nginxのlocation修飾子における厳密な評価優先順位はどうなっていますか?▼

Nginxは次の順序で評価します。1) 完全一致(=)が一致すれば即時確定。2) 全プレフィックスブロックを走査し最長一致候補を保持。3) 最長一致が ^~ を持つ場合は正規表現をスキップして即時確定。4) 記述順に正規表現(~、~*)を走査し最初に一致したものを選択。5) 正規表現に合致しない場合、ステップ2で保持した最長プレフィックスが選ばれます。

Nginxはlocation照合の前にURIをどのように正規化しますか?▼

パーセントエンコード文字(%20 や %2F など)をデコードし、相対パス(. や ..)を解決し、連続する重複スラッシュ(//)を単一スラッシュに圧縮します。また ? 以降のクエリストリングは $query_string に分離されます。

なぜlocationディレクティブでクエリストリングやハッシュフラグメントを直接照合できないのですか?▼

RFC 3986の仕様に基づき、Nginxはパス階層とクエリパラメータを明確に分離して処理します。locationはパスのみをルーティング対象とするため、クエリパラメータによる分岐が必要な場合は $args や $arg_name を用いた map ディレクティブ等で処理します。

nginx.conf内でのプレフィックスlocationブロックの記述順序はマッチング結果に影響しますか?▼

いいえ。正規表現ブロック(~、~*)とは異なり、通常のプレフィックスブロック("" および ^~)はNginx内部でツリー構造として保持され、ファイル内の記述順序に関係なく常に最長一致(longest prefix match)が選ばれます。

入力した設定ファイルの内容やテストケースが外部サーバーに送信されることはありますか?▼

いいえ。URI正規化、locationマッチ判定ロジック、バッチテスト実行、設定構文出力のすべての処理はブラウザのJavaScriptエンジン内でローカルに実行されます。データが外部サーバーへ送信されることはありません。

関連するおすすめ開発ツール

すべてのツール →
Cloudflare Headers & Redirects 生成ツール開発ツール

Cloudflare Pagesの _headers および _redirects 構成、セキュリティヘッダーポリシー、エッジリライティングルールの開発者向け構文リファレンス。

ツールを開く→
Vercel.json 設定・アーキテクチャ開発ツール

エッジルーティング、リライト、セキュリティヘッダー、サーバーレス関数、Cron設定を網羅したvercel.jsonの実務開発者向けリファレンス。

ツールを開く→
ESLint Flat Config (eslint.config.mjs) インタラクティブビルダー開発ツール

TypeScript、React、Next.js、Vue、Prettier、カスタムルールに対応した最新のESLint 9+ フラット設定ファイル(eslint.config.mjs / .js)をブラウザ上で安全に生成します。

ツールを開く→
SemVer範囲・バージョン適合性テスター開発ツール

セマンティック バージョニング(SemVer)範囲(キャレット ^、チルダ ~、ハイフン範囲、X-Range、プレリリース)をテストし、パッケージバージョンの適合性をリアルタイムに検証します。

ツールを開く→
Crontab 表現式解析・スケジュール自動生成ツール開発ツール

POSIXおよびVixie cron式の構文解析、バリデーション、次回実行日時の算出を行う開発者向けリファレンス。

ツールを開く→
正規表現チェッカー・リアルタイムRegExテスター開発ツール

developer向け正規表現テスターユーティリティ。

ツールを開く→