【发布时间】:2019-07-22 23:09:49
【问题描述】:
我正在尝试设置一个反向代理来请求休息 api,比如说我正在发出这样的请求:
127.0.0.1/v1/resources/get/list/23948
目标主机上的预期请求应该是这样的:
http://api.example.com/v1/resources/get/list/23948?key=skdma239mfmd0idfm9844
您可以看到在预期的请求中有一个查询字符串,这样做的原因是为了保护客户端的值,以免敏感数据泄露。
我尝试过这样的位置定义:
location /v1/resources/get/ {
proxy_pass http://api.example.com$uri?key=sdkmfg234msdkmad9898
}
但由于某种原因,NGINX 以 500 响应。
是否可以在proxy_pass 中添加查询字符串?或者是否可以将查询字符串添加到反向代理以保护这些数据?
注意:我知道 stackoverflow 中有一个问题与这个问题相似,但该问题中的答案都没有帮助解决我的问题。 我已经编辑了我上次尝试的代码,nginx 响应 502 状态
【问题讨论】:
-
这可能是因为
.com和$uri之间多了一个/。不要忘记尾随的;。试试看:proxy_pass http://api.example.com$uri?key=sdkmfg234msdkmad9898; -
@Weft 该问题中给出的答案都没有帮助我。
-
@RichardSmith 我试过你提到的,但是 nginx 返回 502 错误;
-
5xx 错误应在错误日志中附上原因说明。