nginx location ディレクティブの優先度
2017.03.19
この記事は最終更新日から1年以上が経過しています。
メモ程度に。。
location ディレクティブ
location ディレクティブは、以下のようになっています。
location [ = | ~ | ~* | ^~ ] uri { ... }
location { } @ name { ... }
location ディレクティブは、URIに応じた様々な制御を行うことができ、使用できる判定のための修飾子は、以下のようになっています。
| priority | prefix | detail | example |
|---|---|---|---|
| 1 | = | 完全一致。一致したら、前方一致と正規表現を適用しない | location = /path |
| 2 | ^~ | 前方一致。一致したら、正規表現を適用しない | location ^~ /path |
| 3 | ~ | 正規表現(大文字・小文字を区別あり)。 | location ~ /path |
| 4 | ~* | 正規表現(大文字・小文字を区別なし)。 | location ~* .(jpg|png) |
| 5 | なし | 前方検索(後方参照。正規表現より優先度が下) | location /path |
優先度に関しては、表の上から順に優先度が高くなります。
location /path/ {
# /path/ で始まる全てのURIに一致。
# 優先度的には以下の中で一番低い
}
location ~ ^/path/ {
# /path/ で始まる全てのURIに一致。
# 優先度的には以下の ^~ が優先的に処理される。
}
location ^~ /path/ {
# /path/ で始まる全てのURIに一致します。
# URIがこの条件に一致したら、以降のいかなるものもチェックの処理されない。
}



















