4

当 proxy_pass 设置为变量时,Nginx 似乎不支持重定向。有没有办法实现此功能,例如以某种方式链接服务器或其他解决方法?不支持此功能的原因是什么?

.conf 是:

proxy_pass $var;
proxy_redirect  default;

我得到的错误信息是:

nginx:[emerg]“proxy_redirect default”不能与带有变量的“proxy_pass”指令一起使用

4

2 回答 2

2

您可以通过指定完整的重定向语句而不是使用“默认”选项来解决此问题。

nginx 文档

默认参数指定的默认替换使用 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”的值作为第二个参数。

于 2018-06-12T06:09:37.843 回答
-3

我曾经遇到过同样的问题,而拯救我的是 Nginx 的解析器模块

尝试添加:

    resolver 8.8.8.8;

在 proxy_pass 行之前。它应该允许您使用变量。

看看一个类似的问题

于 2013-06-08T07:23:40.710 回答