nginx路由匹配指令location用法
# nginx 路由匹配指令 location 用法
本文总结 nginx 的路由匹配指令 location 的用法。location 指令用于匹配用户请求的 url,匹配后会进入对应的逻辑块,该逻辑块中可以指定一个静态网站,也可以是反向代理到某个服务等。location 指令有多种匹配规则,同时这些规则还有匹配优先级。
# 1. 匹配规则
# 1.1 精确匹配
修饰符: =
示例:
location = /abcd {
}
# 1.2 前缀匹配
前缀匹配又包含 2 种情况:
- 有修饰符的前缀匹配
若使用修饰符^~, 则匹配优先级高于正则匹配,否则优先级最低。
location ^~ /doc {
}
- 无修饰符的前缀匹配
location /doc {
}
# 1.3 按文件中顺序的正则匹配
正则匹配规则的书写顺序很重要,若某个路由地址同时匹配了多个正则规则,则启用第一个被匹配的规则。
正则匹配包含 2 种情况:
- 区分大小写的正则匹配
使用修饰符~
location ~ ^/abcd$ {
}
- 不区分大小写的正则匹配
使用修饰符~*
location ~* ^/abcd$ {
}
# 2. 匹配优先级
若某个路由地址同时符合多个匹配规则时, 按如下优先级匹配:
- 精确匹配 =
- 有修饰符的前缀匹配 ^~(立刻停止后续的正则搜索)
- 按文件中顺序的正则匹配 ~或~*
- 无修饰的前缀匹配。
# 3. 参考网站
上次更新: 2020-11-04 17:44:08