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