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

React.js+Nginx+Docker Compose环境下/auth/signin 404错误求助

解决Nginx代理下/auth/signin的404错误

先定位404的来源

首先要明确这个404是Nginx自身返回的,还是后端site-fe服务返回的:

  • 在Nginx服务器上执行命令,直接请求后端服务验证:
    curl -I http://site-fe:80/auth/signin
    
    如果返回HTTP/1.1 404 Not Found,说明问题出在前端服务site-fe,需要检查它的路由配置或部署的静态文件是否包含/auth/signin路径。

后端服务正常时,排查Nginx配置问题

如果后端site-fe确实存在/auth/signin路径,按以下步骤检查:

  1. 确认请求路径传递正确性
    当前location /的proxy_pass http://site-fe:80配置会完整传递请求路径(包括/auth/signin)给后端,这部分逻辑是正确的。另外配置中已设置proxy_set_header Host $host;,满足多数后端服务对Host头的依赖要求。

  2. 排除location规则冲突
    当前配置仅包含/和/api两个location,/auth/signin不会被/api前缀匹配拦截,会正常走/的代理规则,不存在规则冲突问题。

  3. 处理缓存引发的异常(针对你遇到过的304问题)
    若浏览器缓存了旧的404响应,会出现304未修改的情况,可在location /块中添加缓存控制头强制刷新:

    add_header Cache-Control "no-cache, no-store, must-revalidate";
    add_header Pragma "no-cache";
    add_header Expires 0;
    

    调试完成后可根据业务需求调整缓存策略。

  4. 开启详细日志追踪上游响应
    修改Nginx的http块,添加详细日志格式,以便明确上游服务的状态:

    log_format detailed '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for" '
                      '"$upstream_addr" "$upstream_status" "$upstream_response_time"';
    access_log /var/log/nginx/access.log detailed;
    

    重启Nginx后重新请求,查看日志中的$upstream_status字段:

    • 若$upstream_status为404,确认是后端服务的问题;
    • 若$upstream_status为空,说明Nginx未成功转发请求到后端,检查site-fe服务是否正常运行、网络是否连通。

其他排查方向

  • 查看site-fe服务的日志,确认是否接收到/auth/signin请求,以及返回404的具体原因;
  • 用ping site-fe测试Nginx服务器是否能正常解析该主机名;
  • 检查防火墙或安全组是否允许Nginx访问site-fe:80端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 21:17:23