当前位置: 首页 > news >正文

实用指南:proxy_pass和location匹配路径的拼接逻辑

实用指南:proxy_pass和location匹配路径的拼接逻辑

在 Nginx 中,proxy_pass 后的服务地址与 location 匹配路径的拼接逻辑,核心取决于两个因素:location 定义的匹配路径格式proxy_pass 目标地址是否以 / 结尾。以下分场景详细说明:

场景1:location 使用前缀匹配(最常见)

前缀匹配是指 location 以路径开头(不含正则符号 ~~*^~ 等),例如 location /api/location /api

子场景1.1:proxy_pass 目标地址不带 / 结尾

此时,Nginx 会将 完整的客户端请求 URI 拼接到 proxy_pass 地址后。

示例:

location /api/ {proxy_pass http://backend;  # 目标地址不带 /
}
  • 客户端请求:/api/user
  • 转发地址:http://backend/api/user(完整 URI 直接拼接)
子场景1.2:proxy_pass 目标地址/ 结尾

此时,Nginx 会先去掉 location 匹配到的路径部分,再将剩余的 URI 拼接到 proxy_pass 地址后。

示例:

location /api/ {proxy_pass http://backend/;  # 目标地址带 /
}
  • 客户端请求:/api/user
  • 匹配到的 location 路径是 /api/,去掉后剩余 URI 为 user
  • 转发地址:http://backend/user
特殊情况:location 路径不带 /(如 location /api

location 定义为 location /api(末尾无 /),匹配逻辑会略有不同:

  • 它会匹配以 /api 开头的所有请求(包括 /api/api//api/user 等)。

示例1:

location /api {proxy_pass http://backend;  # 不带 /
}
  • 客户端请求:/api/user
  • 转发地址:http://backend/api/user(完整 URI 拼接)

示例2:

location /api {proxy_pass http://backend/;  # 带 /
}
  • 客户端请求:/api/user
  • 匹配到的 location 路径是 /api,去掉后剩余 URI 为 /user
  • 转发地址:http://backend/user

场景2:location 使用精确匹配(= 前缀)

精确匹配(location = /path)仅匹配与路径完全一致的请求,拼接逻辑同样受 proxy_pass 是否带 / 影响。

示例1:

location = /api {  # 仅匹配 /api 请求proxy_pass http://backend;  # 不带 /
}
  • 客户端请求:/api
  • 转发地址:http://backend/api

示例2:

location = /api {proxy_pass http://backend/;  # 带 /
}
  • 客户端请求:/api
  • 转发地址:http://backend/(因 location 匹配的 /api 被去掉,剩余为空,直接拼接 /

场景3:location 使用正则匹配(~~*

正则匹配(如 location ~ ^/api/(\d+)$)时,proxy_pass不能包含路径(只能是主机或 IP:端口),否则 Nginx 会报错。
此时,Nginx 会将完整的客户端请求 URI 直接拼接到 proxy_pass 地址后。

示例:

location ~ ^/api/(\d+)$ {  # 匹配 /api/123 这类请求proxy_pass http://backend;  # 注意:这里不能加 / 或其他路径
}
  • 客户端请求:/api/123
  • 转发地址:http://backend/api/123

总结核心规律

  1. proxy_pass 地址不带 / 结尾:转发时拼接完整客户端请求 URI
  2. proxy_pass 地址/ 结尾:转发时先去掉 location 匹配的路径部分,再拼接剩余 URI。
  3. 正则匹配的 locationproxy_pass 后不能有路径,直接拼接完整 URI。

通过调整 proxy_pass 是否带 /,可以灵活控制转发路径的拼接方式,解决实际场景中“多一级目录”或“少一级目录”的问题。

http://www.hskmm.com/?act=detail&tid=39231

相关文章:

  • 2025 年 10 月铝合金切削液厂家最新推荐,高性能与可靠性兼具的优质品牌
  • 2025 年 10 月硬质合金切削液厂家最新推荐,精准检测与稳定性能深度解析
  • 读AI赋能10助手
  • P13518 [KOI 2025 #2] 镜子
  • Correlation inequality小记
  • 使用Prodfiler优化eBPF编译器性能:从内存分配到向量化的全面调优
  • 详细介绍:JMeter接口测试
  • day04-Coze工作流案例(中草药识别-菜谱生成-智能换脸)
  • d40: vue杂项问题 - 详解
  • 精通-Pandas-探索性分析-全-
  • 【图像处理-基础知识】SFIT特征解析 - 教程
  • 精通-HTML5-表单-全-
  • 深入解析:【FPGA+DSP系列】——(2)DSP最小核心板进行ADC采样实验(采集电位器输出电压)
  • ABC429F Shortest Path Query 题解
  • 苏维埃日报08.高三生福音?大屏课表软件ClassIsland助你度过高三
  • 创建平面设计网站-全-
  • 2025年优质的造纸橡胶辊,天然橡胶辊品牌厂家排行榜
  • 2025年耐用的移动搅拌车,搅拌车优质厂家推荐榜单
  • 2025年比较好的冷拔无缝钢管,大口径无缝钢管热门厂家推荐榜单
  • 2025年靠谱的广场音乐喷泉,水秀音乐喷泉行业内口碑厂家排行榜
  • 2025年靠谱的方形冷却塔,横流式冷却塔用户口碑最好的厂家榜
  • 2025年口碑好的硅胶制品,密封硅胶制品厂家最新实力排行
  • 2025年耐用的北美款三防灯,单双管三防灯厂家推荐及选择指南
  • 2025年靠谱的汽车改装,别克gl8汽车改装厂家实力及用户口碑排行榜
  • 2025年知名的厚薄门通用缓冲铰链,任意扣缓冲铰链厂家实力及用户口碑排行榜
  • 2025年知名的薄型液压缸,多级液压缸实力厂家TOP推荐榜
  • 2025年有实力贴体机,手压式真空贴体机用户好评厂家排行
  • 2025年比较好的二手单板烘干机生产线,滚筒式单板烘干机优质厂家推荐榜单
  • 2025年评价高的家具涂装生产线,涂装生产线实力厂家TOP推荐榜
  • 2025年知名的变频器控制柜,ACU控制柜行业内知名厂家排行榜