如何让Nginx对特定路径进行全代理而非重定向?
Nginx代理重定向问题解决办法
问题场景
当前使用的Nginx配置:
location /apis/ { proxy_pass http://todo-backend:8000/; 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; }
代理http://localhost:4000/apis/todos/时一切正常,但请求http://localhost:4000/apis/todos/24/会被重定向到http://localhost/todos/24。
解决方案
问题出在前后端路径的尾斜杠不一致:前端发起请求时带尾斜杠,而后端对应的接口路径不带尾斜杠,导致后端触发重定向操作时未保留代理前缀。只需统一两端的尾斜杠即可解决——要么前端请求时去掉路径末尾的斜杠,要么后端配置对应带尾斜杠的接口路径,确保请求路径与后端接口路径完全匹配。
内容的提问来源于stack exchange,提问作者Teacup
相关产品推荐
相关产品推荐

