04-Nginx配置之 location 配置
在进行反向代理配置中,我们需要配置 uri 匹配,在 location 中有几种不同的匹配模式,每一个匹配模式的优先级也不相同:
- “=”:用于不含正则表达式的 uri 前,与匹配的字符串需要严格一致才会匹配成功,如果匹配成功就不会向下匹配,优先级最高;
- “~”:用于匹配包含正则表达式的 uri 前,区分大小写;
- “~*”:用于匹配包含正则表达式的 uri 前,不区分大小写;
- “^~”:用于不含正则表达式的 uri 前,一旦匹配到就不再匹配正则 uri 前;
- “/”:默认匹配,只有所有的匹配都不满足才会执行此匹配;
优先级:“=” > “^~” > “~” = “^~” > “/”;
uri 配置用例
location = / { //精确匹配,优先级最高
# 只匹配 / 的查询.
[ configuration A ]
}
location / { //普通匹配,优先级低
# 匹配任何以 / 开始的查询,但是正则表达式与一些较长的字符串将被首先匹配。
[ configuration B ]
}
location ^~ /images/ { //反正则,优先于正则匹配
# 匹配任何以 /images/ 开始的查询并且停止搜索,不检查正则表达式。
[ configuration C ]
}
location ~* \.(gif|jpg|jpeg)$ { // ~*正则匹配,不区分大小写,优先级高于普通匹配
# 匹配任何以gif, jpg, or jpeg结尾的文件,但是所有 /images/ 目录的请求将在Configuration C中处
理。
[ configuration D ]
}
各请求的处理如下例:
http://192.168.140.110:9000/
: 会匹配 A、B 但 A 的优先级高,会执行 A 的配置;
http://192.168.140.110:9000/documents/document.html
: 只会匹配 B;
http://192.168.140.110:9000/images/1.gif
: 会匹配到 B、C、D,但是 C 优先级高,会执行 C 配置;
http://192.168.140.110:9000/documents/1.jpg
: 会匹配 B、D,执行 D 的配置;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异