当proxy_pass设置为变量时,似乎Nginx无法支持重定向。有没有办法实现这个功能,例如不知何故链服务器或其他解决方法?这是不支持的原因是什么?
.conf是:
proxy_pass $var;
proxy_redirect default;
我得到的错误信息是:
nginx:[emerg]“proxy_redirect default”不能与带有变量的“proxy_pass”指令一起使用
答案 0 :(得分:0)
您可以通过指定完整的重定向语句而不是使用“默认”选项来解决此问题。
default参数指定的默认替换使用location和proxy_pass指令的参数。因此,以下两种配置是等效的:
location /one/ { proxy_pass http://upstream:port/two/; proxy_redirect default; location /one/ { proxy_pass http://upstream:port/two/; proxy_redirect http://upstream:port/two/ /one/;
因此,要替换“default”指令,请使用“proxy_pass”的值作为“proxy_redirect”的第一个参数,并使用“location”的值作为第二个参数。
答案 1 :(得分:-1)
我曾经遇到过同样的问题,救了我的是Nginx的解析器模块
尝试添加:
resolver 8.8.8.8;
在proxy_pass行之前。它应该允许你使用变量。