业务需要通过 Nginx 反向代理 Get 请求后端接口,但发现反向代理服务器访问路径中无法添加查询参数?
原配置
location /net/comm/ {
proxy_pass http://localhost:9000;
proxy_set_header Host localhost;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
这样可以通过访问 http://a.com/net/comm/127.0.0.1 获取数据
但需要将请求路径调整为 http://a.com/net/comm/?ip=127.0.0.1 获取数据时,调整了反代规则:
location /net/comm/?ip= {
proxy_pass http://localhost:9000;
proxy_set_header Host localhost;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
此时,反向代理服务器会报 404 错误。接着又进行了调整:
location ^~ /net/comm/ {
proxy_pass http://localhost:9000;
proxy_set_header Host localhost;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
此时,接口会返回 404 错误。
麻烦 V 友给看看,需要怎么调整才可以实现带查询参数访问呢?将请求路径 http://a.com/net/comm/127.0.0.1 调整为 http://a.com/net/comm/?ip=127.0.0.1
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.