Varnish Vcl用于多个传入和传出端口连接

时间:2016-09-05 06:59:56

标签: varnish haproxy varnish-vcl

从一段时间以来我使用的是Varnish Cache解决方案,只要配置与安装后的配置大致相同,一切都很顺利。

但现在我想用Varnish多做一点。目前我正在为我的服务器使用以下设置:

访客 - > CloudFlare - > HaProxy - >清漆(单独的服务器) - > Apache2内容。

我想知道的是我如何能够使用正确的vcl脚本来接受来自端口B上来自ip A的传入请求并将其重定向到端口D上的ip C.(这还有更多不止一次。)

示例:

Default.Varnish的效果如下:

DAEMON_OPTS="-a :8085,:8087 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -s malloc,768m"

但现在关于Varnish.Default:

backend default_1 { .host = "11.22.333.444"; .port = "8885"; }
backend default_2 { .host = "11.22.333.444"; .port = "8887"; }

我尝试过这样的事情:

sub vcl_recv {
 if (server.port == 8885) { set req.backend = default_1; }
 if (server.port == 8887) { set req.backend = default_2; }
}

(请注意这两个请求都要发送到 相同的传出服务器只有端口不同!)

从Varnish那里了解得足够的人已经知道我想要什么了。我只想使用Varnish代理不同的渠道'基于不同的端口。

1 个答案:

答案 0 :(得分:0)

尝试检查Varnish绑定端口,而不是后端端口

sub vcl_recv {
 if (server.port == 8085) { set req.backend = default_1; }
 if (server.port == 8087) { set req.backend = default_2; }
}