end0tknr's kipple - 新web写経開発

http://d.hatena.ne.jp/end0tknr/ から移転します

nginxにおけるlocation match の優先度

https://www.nginx.com/resources/admin-guide/nginx-web-server/ ポイントは、以下の2つ。

POINT1 - 前方一致 & 最長一致

例えば、nginx.conf に次のように設定されている場合、/images/foobar.gif に対するアクセスは、「location /images/」が適用されます。

server {
    location /images/ {
        root /data;
    }

    location / {
        proxy_pass http://www.example.com;
    }
}

POINT2 - 完全一致と正規表現での優先度

priority prefix example
1 = (完全一致) location = /path
2 ^~ (前方一致&後方不参照) location = /image
3 ~ (正規表現&大文字小文字 区別あり) location ~ /image/
4 ~* (正規表現&大文字小文字 区別なし) location ~* .(jpg|png)
5 なし(前方一致&後方参照) location /image

※「後方参照あり」の場合、一致した後も、他のlocationを評価し、より優先度の高い locationが見つかった場合、そちらを優先します