0

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

我们正在考虑用 varnish 替换 squid 反向代理。

我一直找不到任何有用的东西,并且清漆、apache 和具有自己 IP 地址的基于名称的虚拟主机不起作用。

这是我们正在安装 varnish 的 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);
        }
}
4

1 回答 1

1

您提到的“不起作用”的帖子似乎很好。您只需在清漆配置中创建 2 个后端,然后根据请求的主机选择后端。

如果你不能让它工作,你需要发布你的设置和配置的详细信息,以获得进一步的帮助。

于 2012-10-17T10:42:28.040 回答