Nginx location配置
Nginx location配置
简介:nginx 作为静态资源服务器或反向代理服务器,其 location指令 实现了对请求的分发规则。
语法: location [=||*|^~|@] pattern { ... }
[]作为可选项,其目的用于修饰后面的必选项pattern 。
选项的意义和优先顺序
- 精确匹配
=
- 前缀匹配
^~
(立刻停止后续的正则搜索) - 按文件中顺序的正则匹配
~
或~*
- 匹配不带任何修饰的前缀匹配。
先精确匹配,没有则查找带有 ^~的前缀匹配,没有则进行正则匹配,最后才返回前缀匹配的结果(如果有的话)
备注:对于相同修饰符,但pattern不通,还遵循最长匹配原则
测试工具:curl
为了快速的测试location的分发规则,我们可以借助curl 命令快速测试
案例一:server.location配置如下
server {
listen 85;
server_name localhost;
location / {
return 801; # 用这样的方式,可以方便的知道请求到了哪里
}
location /abc {
return 802;
}
location = /abc {
return 805;
}
location /abcde {
return 803;
}
location ^~ /abcd {
return 806;
}
location /abc/d {
return 804;
}
location ~ ^/ab[a-z]+ {
return 702;
}
}
解析案例一
curl -I localhost:85
HTTP/1.1 801
curl -I localhost:85/a
HTTP/1.1 801
备注1:无选项[]修饰符pattern为 / 可匹配全部url但优先级比较低
curl -I localhost:85/abc
HTTP/1.1 805
备注2:url=/abc 可匹配L1-3,但L2为精确匹配优先级最高
curl -I localhost:85/abc/a
HTTP/1.1 802
备注3:url=/abc/a 可匹配L1和L2同是无修饰符,但L2更长
curl -I localhost:85/abc/d
HTTP/1.1 804
备注4:可匹配L1,L2,L6,但L6更长(更精确)
学习资源:nginx官方地址http://nginx.org/en/docs/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?