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

问题描述:

我有一个职位服务器侦听端口8081和示例路径。 我希望能够将整个URI查询参数重定向到节点服务。 我该怎么做。传递URI查询参数nginx反向代理

例如,我想下面的POST请求的URL http://exmaple.com/foo/bar?bla=1传递给http://example.com:8081/foo/bar?bla=1

它看起来非常简单和直接的例子,但只是无法得到它的工作,任何IDE?

location ^~ /foo/bar { 

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

默认proxy_pass不会改变请求URI(包括查询字符串)。在你的问题的例子说明两种方式其中URI可以之前被上游发送被改变 - 通过附加的可选URI到proxy_pass声明(见this document)或具有rewrite...break声明(见this document)。

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

它是否支持POST请求,因为相关解决方案并没有为我工作... – user4860092

+1

如果你删除这两个,该URI将上游不受干扰,并与查询字符串完好发送POST请求应该透明地传递。重新读取您的问题 - 在POST请求中包含URL编码参数是很常见的,因为POST请求包含一个主体。 –

+0

对于这篇文章你是对的,它正在发展中,并且在不久的将来往往会发生变化。首先,我想修复反向代理isuue,我在这里。我没有提到,但我认为它也应该是透明的,服务器包括tls(https) – user4860092