Nginx locationディレクティブ優先順位ルール(=, ^~, ~, ~*)の完全整理

Nginx Infrastructure DevOps Web
結論

最優先は = (完全一致)、正規表現の評価をスキップさせたい重要なパスには ^~ を指定します。

# 結論:location マッチング修飾子の記述例
location = / { ... }       # 1. 完全一致(即確定)
location ^~ /images/ { ... } # 2. 正規表現評価スキップ

location マッチング優先度一覧

優先度プレフィックス修飾子マッチ種別特徴・評価挙動
1 (最優先)=完全一致一致した場合、即座に評価を確定して終了
2^~記号付き前方一致一致した場合、以降の正規表現マッチをスキップ
3~ / ~*正規表現 (大文字区別/不区別)設定ファイルの上から順に評価
4 (最低)(修飾子なし)プレフィックス前方一致最も長く一致した箇所を一時保持し正規表現へ進む

設定手順

  1. /favicon.ico/robots.txt などの完全一致パスには location = /favicon.ico を使用する
  2. 静的アセットディレクトリ(/static/等)で正規表現チェックをパスさせたい場合は location ^~ /static/ を指定する
  3. nginx -t で構文チェック後、nginx -s reload で適用しアクセス確認を行う