You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NGINX负载均衡ProxyPass失效问题技术咨询

NGINX ProxyPass路径异常:discover/discover/...问题解决

这是NGINX配置里非常典型的斜杠匹配坑,我帮你拆解下问题和解决方案:

问题根源

你的location配置是/discover/(末尾带斜杠),而proxy_pass只写了http://discover(末尾不带斜杠)。NGINX的规则是:当location路径末尾带斜杠,且proxy_pass地址末尾不带斜杠时,会把location匹配到的完整路径前缀(也就是/discover/)直接追加到proxy_pass的地址后面,最终就出现了discover/discover/...的异常路径。

两种解决方案

方案1:给proxy_pass添加末尾斜杠(推荐,符合你的需求)

修改location块的配置,给proxy_pass的地址加上末尾斜杠:

location /discover/ {
    proxy_pass http://discover/;  # 注意这里的末尾斜杠
}

这样配置后,NGINX会把请求路径中/discover/后面的部分,直接映射到上游服务器的根路径。比如用户访问http://your-nginx-ip/discover/api,会被转发到http://discover/api,完美解决路径重复的问题。

方案2:调整location的路径写法

如果不需要严格匹配带斜杠的/discover/,可以去掉location路径的末尾斜杠:

location /discover {
    proxy_pass http://discover;
}

这种方式下,NGINX会匹配所有以/discover开头的请求(包括/discover和/discover/xxx),转发时会把完整的请求路径追加到上游地址后。不过这种方案可能不符合你原本只想匹配/discover/前缀的需求,所以优先选方案1。

验证步骤

修改完配置后,先执行以下命令检查配置语法是否正确:

nginx -t

如果提示test is successful,再重新加载NGINX配置:

nginx -s reload

内容的提问来源于stack exchange,提问作者alexmm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:56:48