varnish cache apache 2台服务器上的虚拟主机

时间:2012-10-17 07:41:15

标签: varnish

我们有2台Apache服务器提供不同的内容并使用虚拟主机。在一台服务器上我们有一个博客,维基和论坛,另一方面我们有一个帮助台和静态页面。我们目前在第三台服务器上都有一个squid反向代理。

我们正在寻找用清漆替换squid反向代理。

我无法找到任何有效的内容,而varnish, apache and namebased virtual host with own ip addresses无效。

这是我们正在安装清漆的Centos 6服务器。

有没有人有可能有效的配置?

编辑添加: 好的终于明白了。以下是一个完整的脚本,供后人使用。

在server1上是: registration.test.co.za oldforum.test.co.za

在Server2上是: forum.test.co.za blog.test.co.za

    acl internal_net {
        "localhost";
        "192.168.1.0"/24;

}
backend server1 {
  .host = "192.168.1.101";
  .port = "80";
}
backend server2 {
    .host = "192.168.1.102";
    .port = "80";
}

# Respond to incoming requests
sub vcl_recv {
######BACKENDS#####################
#
#SERVER1
#
if (req.http.host == "registration.test.co.za$") {
set req.backend = server1;


} else if (req.http.host ~ "oldforum.test.co.za$") {
        set req.backend = server1;
#
#SERVER2
#
} else if (req.http.host ~ "forum.test.co.za$") {
        set req.backend = server2;


} else if (req.http.host ~ "blog.test.co.za$") {
        set req.backend = server2;
}

        # Allow purge only from internal users
        if (req.request == "PURGE") {
                if (!client.ip ~ internal_net) {
                        error 405 "Not allowed.";
                }
                return (lookup);

}
# Non-RFC2616 or weird requests
        if (req.request != "GET" &&
                req.request != "HEAD" &&
                req.request != "PUT" &&
                req.request != "POST" &&
                req.request != "TRACE" &&
                req.request != "OPTIONS" &&
                req.request != "DELETE") {
                return (pass);
        }
}

1 个答案:

答案 0 :(得分:1)

你提到的“不起作用”的帖子似乎完全没问题。您只需在清漆配置中生成2个后端,然后根据请求的主机选择后端。

如果您无法使用它,则需要发布设置的详细信息以及无法获得进一步帮助的配置。