04-Nginx配置之 location 配置

在进行反向代理配置中,我们需要配置 uri 匹配,在 location 中有几种不同的匹配模式,每一个匹配模式的优先级也不相同:

  1. “=”:用于不含正则表达式的 uri 前,与匹配的字符串需要严格一致才会匹配成功,如果匹配成功就不会向下匹配,优先级最高;
  2. “~”:用于匹配包含正则表达式的 uri 前,区分大小写;
  3. “~*”:用于匹配包含正则表达式的 uri 前,不区分大小写;
  4. “^~”:用于不含正则表达式的 uri 前,一旦匹配到就不再匹配正则 uri 前;
  5. “/”:默认匹配,只有所有的匹配都不满足才会执行此匹配;

优先级:“=” > “^~” > “~” = “^~” > “/”;


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 的配置;

posted @   ayi8  阅读(125)  评论(0编辑  收藏  举报
编辑推荐:
· 从 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的设计差异
点击右上角即可分享
微信分享提示