实验环境:
主机 | 服务 |
---|---|
server1:172.25.63.1 | varnish |
server2:172.25.63.2 | apache |
server3:172.25.63.3 | apache |
一、定义多个不同域名站点的后端服务器
- 在server3上
提示:server2的相关配置在上一篇博客中已经详细写了
1.安装httpd软件
2.切换到默认发布目录建立默认发布文件
[root@server3 ~]# cd /var/www/html/
[root@server3 html]# ls
[root@server3 html]# vim index.html
3.重启服务
- 在server1上
4.编辑/etc/varnish/default.vcl默认文件
##定义多个不同域名站点的后端服务器
backend web1 {
.host = "172.25.63.2";
.port = "80";
}
backend web2 {
.host = "172.25.63.3";
.port = "80";
}
#当访问www.westos.org域名时从web1上取数据,访问bbs.westos.org域名时到web2取数据, 访问其他页面报错。
sub vcl_recv {
if (req.http.host ~ "^(www.)?westos.org") {
set req.http.host = "www.westos.org";
set req.backend = web1;
} elsif (req.http.host ~ "^bbs.westos.org") {
set req.backend = web2;
} else {error 404 "westos cache";
}
}
sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT from westos cache";
}
else {
set resp.http.X-Cache = "MISS from westos cache";
}
return (deliver);
}
5.重启varnish服务
[root@server1 html]# /etc/init.d/varnish reload
6.编辑真实主机域名解析文件,添加域名解析
7.测试:访问www.westos.org出现server2的内容,访问bbs.westos.org
出现server3的内容
[root@foundation63 ~]# curl www.westos.org
<h1>server2.example.com</h1>
[root@foundation63 ~]# curl bbs.westos.org
<h1>server3.example.com</h1>
二、负载均衡
- 在server1上
1.编辑/etc/varnish/default.vcl默认文件
backend web1 {
.host = "172.25.23.2";
.port = "80";
}
backend web2 {
.host = "172.25.23.3";
.port = "80";
}
director lb round-robin{ #把多个后端聚合为一个组
{.backend = web1;}
{.backend = web2;}
}
sub vcl_recv {
if (req.http.host ~ "^(www.)?westos.org") {
set req.http.host = "www.westos.org";
set req.backend = lb;
return (pass); #为了测试方便,不进行缓存
} elsif (req.http.host ~ "^bbs.westos.org") {
set req.backend = web2;
} else {error 404 "westos cache";
}
}
sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT from westos cache";
}
else {
set resp.http.X-Cache = "MISS from westos cache";
}
return (deliver);
}
3.重启服务
4.测试:当开启缓存时的结果
[root@foundation63 ~]# curl www.westos.org
<h1>server2.example.com</h1>
[root@foundation63 ~]# curl www.westos.org
<h1>server2.example.com</h1>
[root@foundation63 ~]# curl www.westos.org
<h1>server2.example.com</h1>
5.当关闭缓存时的结果
[root@foundation63 ~]# curl www.westos.org
<h1>server2.example.com</h1>
[root@foundation63 ~]# curl www.westos.org
<h1>server3.example.com</h1>
[root@foundation63 ~]# curl www.westos.org
<h1>server2.example.com</h1>
[root@foundation63 ~]# curl www.westos.org
<h1>server3.example.com</h1>
三、建立虚拟主机
1.在server3上编辑httpd的配置文件,编写虚拟主机信息
[root@server3 ~]# cd /etc/httpd/conf
[root@server3 conf]# ls
httpd.conf magic
[root@server3 conf]# vim httpd.conf
将注释打开
在文件最后写入
2.创建目录/www和/bbs,编辑发布文件
[root@server3 conf]# mkdir /www /bbs
[root@server3 conf]# cd /www
[root@server3 www]# vim index.html
[root@server3 www]# cd /bbs
[root@server3 bbs]# vim index.html
3.重启apache服务
[root@server3 bbs]# /etc/init.d/httpd restart
4.添加地址解析
5.测试:访问www.westos.org,内容轮询变化