NGINX:如何在反向代理中添加查询字符串?
NGINX: How to add query string in a reverse proxy?
我正在尝试设置一个反向代理来请求休息 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
中添加查询字符串?或者是否可以将查询字符串添加到反向代理以保护此数据?
注意:我知道 Whosebug 中有一个问题看起来与这个问题类似,但该问题中的 none 答案有助于解决我的问题。
我已经编辑了我上次如何尝试的代码,nginx 响应 502 状态
在深入阅读 nginx
文档并在@RichardSmith 的帮助下,我能够使用 resolver
.
成功地通过 proxy_pass
发出请求
问题是当使用 proxy_pass
域时,nginx 的 built-in 解析器将尝试自行解析以查看 DNS 是否被缓存,因为没有定义 DNS 解析器, nginx 无法完成请求。
我的位置定义是这样的:
location /v1/resources/get/ {
resolver 8.8.8.8;
proxy_pass http://api.example.com$uri?key=sdkmfg234msdkmad9898
}
因为这是为了测试,我使用了 google 的默认解析器,即 8.8.8.8
我正在尝试设置一个反向代理来请求休息 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
中添加查询字符串?或者是否可以将查询字符串添加到反向代理以保护此数据?
注意:我知道 Whosebug 中有一个问题看起来与这个问题类似,但该问题中的 none 答案有助于解决我的问题。 我已经编辑了我上次如何尝试的代码,nginx 响应 502 状态
在深入阅读 nginx
文档并在@RichardSmith 的帮助下,我能够使用 resolver
.
proxy_pass
发出请求
问题是当使用 proxy_pass
域时,nginx 的 built-in 解析器将尝试自行解析以查看 DNS 是否被缓存,因为没有定义 DNS 解析器, nginx 无法完成请求。
我的位置定义是这样的:
location /v1/resources/get/ {
resolver 8.8.8.8;
proxy_pass http://api.example.com$uri?key=sdkmfg234msdkmad9898
}
因为这是为了测试,我使用了 google 的默认解析器,即 8.8.8.8