nginx location匹配规则
- 服务器
- 三生万物
- 0
语法:
location [=|~|~*|^~] /uri/ {
# ...
}
规则:
- / 开头表示通用匹配(任何请求都会匹配到)
- = 开头表示精确匹配
- ^~ 开头表示uri以某个常规字符串开头(如url路径)
- ~ 开头表示区分大小写
- ~* 开头表示不区分大小写
- !~ 开头表示区分大小写不匹配
- !~* 开头表示不区分大小写不匹配
优先级:
首先精确匹配 =
-> 其次以xx开头匹配 ^~
-> 然后是按文件中顺序的正则匹配
-> 最后是交给 / 通用匹配
。
当有匹配成功时候,停止匹配,按当前匹配规则处理请求。
示例:
location = / {
#规则1
}
location = /user {
#规则2
}
location ^~ /static/ {
#规则3
}
location ~ \.(gif|jpg|png|js|css)$ {
#规则4,注意:是根据括号内的大小写进行匹配。括号内全是小写,只匹配小写
}
location ~* \.png$ {
#规则5
}
location !~ \.html$ {
#规则6
}
location !~* \.html$ {
#规则7
}
location / {
#规则8
}
使用场景
某某接口跳过一些配置,如:add_header,单独拿出来做精确匹配
location = /api/xxx/add {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_pass http://127.0.0.1:3000;
}
location / {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_pass http://127.0.0.1:3000;
if ($http_origin ~ xxx\.cn$) {
add_header Access-Control-Allow-Origin $http_origin;
}
}
免责申明:本站发布的内容(图片、视频和文字)以转载和分享为主,文章观点不代表本站立场,如涉及侵权请联系站长邮箱:xbc-online@qq.com进行反馈,一经查实,将立刻删除涉嫌侵权内容。