1.location 介绍
•location 是在 server 块中配置,用来通过匹配接收的uri来实现分类处理不同的请求,如反向代理,取静态文件等
•location 在 server 块中可以有多个,且是有顺序的,会被第一个匹配的 location 处理
•localtion 匹配功能只做匹配分发用,并不会改变uri的内容或其他作用,我一开始理解的时候就混淆了一些概念,建议多做测试看实际效果
2.localtion 匹配规则
•location [ = | ~ | ~* | ^~ ] uri { … }
•location @name { … }
注1:规则不能混合使用
注2:以下例子说明都以该server为基础
server {
listen 8861;
server_name abc.com;
}
2.1 “=” 精确匹配
•内容要同表达式完全一致才匹配成功
例:
location = / {
.....
}
# 只匹配http://**abc.co*m
# http://**abc.co*m [匹配成功]
# http://**abc.co*m/index [匹配失败]
2.2 “~”,大小写敏感
例·:
location ~ /Example/ {
.....
}
#http://**abc.co*m/Example/ [匹配成功]
#http://**abc.co*m/example/ [匹配失败]
2.3.“~*”,大小写忽略
例:
location ~* /Example/ {
.....
}
# 则会忽略 uri 部分的大小写
#http://**abc.co*m/test/Example/ [匹配成功]
#http://**abc.co*m/example/ [匹配成功]
2.4.“^~”,只匹配以 uri 开头
例:
location ^~ /index/ {
.....
}
#以 /img/ 开头的请求,都会匹配上
#http://**abc.co*m/index/index.page [匹配成功]
#http://**abc.co*m/error/error.page [匹配失败]
2.5.“@”,nginx内部跳转
例:
location /index/ {
error_page 404 @index_error;
}
location @index_error {
.....
}
#以 /index/ 开头的请求,如果链接的状态为 404。则会匹配到 @index_error 这条规则上。
2.6 不加任何规则
•不加任何规则则时,默认是大小写敏感,前缀匹配,相当于加了“~”与“^~”
•只有 / 表示匹配所有uri
location /index/ {
......
}
#http://**abc.co*m/index [匹配成功]
#http://**abc.co*m/index/index.page [匹配成功]
#http://**abc.co*m/test/index [匹配失败]
#http://**abc.co*m/Index [匹配失败]
# 匹配到所有uri
location / {
......
}
DeepSeek多模态怎么样及保姆级配置教程(codex、claude)实用指南
WSL2+Docker+Ollama本地部署大模型思路和实践指南(Qwen1.8b)实用指南
DeepSeek Harness热门插件盘点:10个实用插件,覆盖多Agent、上下文和多模态实用指南
grep文本搜索与正则表达式完整代码示例实用指南
AI漫剧伪装直男1‑24集无雾版夸克网盘资源免费分享
AI漫剧玉僧入尘1-68集无雾无删版夸克网盘资源免费分享