ブロック
- プロトコルレベル(httpブロック)
- サーバレベル(serverブロック)
- URIレベル(locationブロック)
http {
....
server {
.....
location {
.....
}
}
}
locationは入れ子可能だが、 = でマッチさせた場合は無理。^~も?
locationブロックの優先順位 基本
構文
location [=|~|~*|~~|@] pattern { ... }
優先順位
設定ファイルに書く順番関係なく、修飾子よって優先順位が違う。
- =(等価。^~と同じで、以降のlocationとマッチしない。)
- 修飾子なしでpatternがURIに完全マッチ
- ^~(5番の修飾子なし先頭部分マッチと同じだが、最初にマッチしたパスで検索終了)
- ~ or ~* (正規表現を使用。大文字小文字の区別ありとなし)
- 修飾子なしで、patternがURIに先頭部分マッチ
locationブロックの優先順位 応用
修飾子なしで、同じパターン
エラーになる。
location /hoge/ {}
location /hoge/ {}
同じ正規表現
先に書いたほうが優先
location ~ /hoge/ {} #優先
location ~ /hoge/ {}
修飾子なしで、前方一致
より長く一致したほうが優先
location /ho {}
location /hog {} #優先
異なる修飾子で前方一致
修飾子関係なく、長く一致したほうが優先
location ^~ /ho {} #修飾子としてはこちらが強いが、
location /hog {} #こちらが優先される
0 件のコメント:
コメントを投稿