将现有的 Varnish 服务用于另一台服务器

将现有的 Varnish 服务用于另一台服务器

在这种情况下,有一台服务器运行几个网站,并且也配置了 varnish 服务。

现在,在另一台服务器上,我在 LAMP 环境 + W3TC Cache + APC 中运行 2 个 wp 多站点,现在我想配置我的第一台服务器作为它的反向代理。

我想知道这是否可以做到:

acl whitelist {
        "localhost";
        "127.0.0.1";
        "ip server with varnish";
        "ip wordpress server";
}

sub vcl_recv {
    if ( ! client.ip ~ whitelist) {
       error 403 "Access denied";
    }

在开始测试之前,由于我对 Varnish 的使用经验很少,我想听听你对设置我的服务器 VCL 的 ACL 以允许来自外部服务器的请求的意见

更新

需要指出的是,Apache 响应 8080 端口,而 Varnish 响应 80。

默认/清漆

DAEMON_OPTS="-a ip-server-1:80 \
             -T localhost:6082 \
             -f /etc/varnish/main.vcl \
             -S /etc/varnish/secret \
             -s file,/var/lib/varnish/$INSTANCE/varnish_storage.bin,1G"

答案1

您添加的内容将确保除给定主机之外的任何人都无法将请求发送到其后面的服务器。

相反,您可以轻松检查请求的主机,并让 varnish 使用类似这个小示例将后端请求发送到正确的服务器;

backend server1 {
        .host = "127.0.0.1";
        .port = "81";
}

backend server2 {
        .host = "192.168.0.1";
        .port = "80";
}

sub vcl_recv {

    if (req.http.host ~ "www.domain1.com") {
        set req.backend = server1;   
    }

    if (req.http.host ~ "www.domain2.com") {
        set req.backend = server2;
    }

}

相关内容