我正在尝试在访问唯一网址时使用proxy_pass
设置nginx:
location ~ /proxy/(?<var>.+) {
proxy_pass $var;
}
当我访问http://example.com/proxy/http://google.com
时,我收到500内部服务器错误,错误日志包含以下条目:
“http:/google.com”中的网址前缀无效,客户端:2.33.214.165, server:example.com,request:“GET / proxy / http://google.com HTTP / 1.1”, 主持人:“example.com”
nginx在网址中不包含第二个/
是否有任何理由?
答案 0 :(得分:3)
试试这个:merge_slashes
虽然上下文是服务器范围的,但是如果您仍然需要在其他地方合并斜杠,则必须在将代理目标拆分为模式和主机+ uri的位置中改进regexp。这样的事情:^/proxy/(?<schema>.+)://(?<rest>)
然后proxy_pass $schema://$rest
可能有用。