我们有 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);
}
}