传递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;
}
它是否支持POST请求,因为相关解决方案并没有为我工作... – user4860092
:
如果你删除这两个,该URI将上游不受干扰,并与查询字符串完好发送POST请求应该透明地传递。重新读取您的问题 - 在POST请求中包含URL编码参数是很常见的,因为POST请求包含一个主体。 –
对于这篇文章你是对的,它正在发展中,并且在不久的将来往往会发生变化。首先,我想修复反向代理isuue,我在这里。我没有提到,但我认为它也应该是透明的,服务器包括tls(https) – user4860092