传递URI查询参数nginx反向代理

时间:2017-10-13 21:38:51

标签: nginx reverse-proxy

我有一个后端服务器侦听端口8081和示例路径。 我希望能够将整个URI查询参数重定向到节点服务。 我应该怎么做。

例如,我希望以下帖子请求网址http://exmaple.com/foo/bar?bla=1 传递给 http://example.com:8081/foo/bar?bla=1

它看起来很简单直接的例子,但是不能让它工作,任何想法?

location ^~ /foo/bar {

                rewrite_log on;
                rewrite ^/foo/bar(.*) /$1 break;
                proxy_pass http://example.com:8081/foo/bar;                 
        }

1 个答案:

答案 0 :(得分:3)

默认情况下,proxy_pass不会更改请求URI(包括查询字符串)。您的问题中的示例说明了两种方式,其中URI可以在上游发送之前更改 - 通过在proxy_pass语句中附加可选URI(请参阅this document)或使用rewrite...break语句(请参阅this document)。

如果同时删除这两个URI,则URI将在上游发送,并且查询字符串保持不变:

location ^~ /foo/bar {
    proxy_pass http://example.com:8081;
}