Docker与Nginx反向代理配置后后端API无法访问求助
问题解决:Nginx反向代理/api路径404
核心修复方法
修改Nginx配置中/api/对应的proxy_pass,移除末尾的斜杠:
location /api/ { proxy_pass http://localhost:8080; # 去掉末尾的斜杠 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }
修改后执行命令重启Nginx生效:
sudo nginx -s reload
问题原因
你当前的proxy_pass http://localhost:8080/末尾带斜杠,Nginx会将请求路径中匹配/api/的部分替换为空。比如用户请求https://custom.domain/api/auth/login,会被转发到http://localhost:8080/auth/login——但你的后端实际监听的是/api/auth/login,所以返回404。
去掉斜杠后,Nginx会完整保留请求路径,转发为http://localhost:8080/api/auth/login,和你用Postman直接访问的路径完全一致,就能正常请求了。
验证方式
修改配置后,用curl测试:
curl -X POST https://custom.domain/api/auth/login -d "你的请求参数"
或者直接在前端页面测试登录功能,确认不再返回404。
内容的提问来源于stack exchange,提问作者intrudo
相关产品推荐
相关产品推荐

