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

Nginx配置auth_request失效,访问/protected路由出现404求助

问题原因及解决方法

核心原因:proxy_pass的路径转发规则错误

当你访问/protected时,Nginx的proxy_pass http://localhost:4500;配置会将完整的请求路径/protected直接拼接到后端地址后,最终转发到http://localhost:4500/protected。如果你的localhost:4500服务没有配置/protected这个路由,自然会返回404。

而/api/application能正常访问,是因为同样的转发规则会把请求转发到http://localhost:4500/api/application,恰好你的后端服务存在这个路由,所以可以正常响应。

解决办法

根据后端服务的实际路由配置,选择以下方式调整:

  • 如果后端服务对应/protected的逻辑部署在根路径(/),修改/protected的proxy_pass为:
    proxy_pass http://localhost:4500/;
    
    (注意末尾的斜杠,Nginx会将/protected替换为/后转发到后端)
  • 如果后端服务的对应路由是其他路径(比如/app/protected),可以通过rewrite规则调整路径后转发:
    location /protected {
        auth_request /auth;
        auth_request_set $auth_status $upstream_status;
        proxy_set_header X-Real-IP $remote_addr;
        rewrite ^/protected/(.*)$ /app/protected/$1 break;
        proxy_pass http://localhost:4500;
    }
    
  • 或者直接在proxy_pass中指定完整的后端路径:
    proxy_pass http://localhost:4500/对应的后端路径;
    

额外检查

确保/auth的校验服务在Token有效时返回2xx状态码(比如200),如果返回非2xx状态,auth_request会直接拦截请求,不会进入后续的转发逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 19:50:13