实验环境
主机 | ip |
---|---|
server1(varnish服务器) | 172.25.5.1 |
server2(后端web服务器) | 172.25.5.2 |
server3(后端web服务器) | 172.25.5.3 |
foundation4(客户端) | 172.25.5.250 |
续上一篇文章
1.多个后端服务器的配置
1.编辑varnish的配置文件(配置后端两台服务器)
[root@server1 ~]# vim /etc/varnish/default.vcl
backend web1 { # 后端第一个服务器名web1
.host = "172.25.5.2"; #将server2 www.westos.org作为第一个服务器主机
.port = "80";
}
backend web2 { # 后端第二个服务器名web2
.host = "172.25.5.3"; #将server3 bbs.westos.org作为第二个服务器主机
.port = "80";
}
#当访问 www.westos.org 或 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";
}
}
2.重新启动服务,或者重新加载
[root@server1 ~]# /etc/init.d/varnish reload
3.在server2和server3配置http服务,并且写入内容
3.在客户端进行测试
修改本地解析
测试
2.负载均衡的配置
1.编辑varnish的配置文件
backend web1 {
.host = "172.25.5.2";
.port = "80";
}
backend web2 {
.host = "172.25.5.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";
}
}
2.重新启动服务
3.清楚缓存
4.在客户端进行测试,访问www.westos.org时,会出现每访问一次,会变跳
3.验证varnish的缓存作用
1.编辑配置文件
注释调上面实验的不缓存
return (pass);
sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT from westos.cache";
} # 在varnish中命中HIT访问的域名
else {
set resp.http.X-Cache = "MISS from westos cache";
} # 后端服务器中得到MISS访问的域名
return (deliver);
}
2.重新启动服务
3.清除缓存
[root@server1 ~]# varnishadm ban.url .*$ ##清除所有缓存
[root@server1 ~]# varnishadm ban.url /index.html ##清除网页的缓存
[root@server1 ~]# varnishadm ban.url /admin/$ ##清除admin 目录缓存
3.客户端测试
第一次显示没用缓存到
以后都会显示缓存到了
4.一台主机多个解析(虚拟主机):
- 在server3的httpd的默认发布目录中建立两个虚拟主机
[root@server3 ~]# vim /etc/httpd/conf/httpd.conf
990 NameVirtualHost *:80 ##注释打开
##在最后编辑:
<VirtualHost *:80>
DocumentRoot /www
ServerName www.westos.org
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /bbs
ServerName bbs.westos.org
</VirtualHost>
2.创建目录/www 和/bbs,并编辑相应的前端文件
[root@server3 ~]# mkdir /www
[root@server3 ~]# mkdir /bbs
[root@server3 ~]# cd /www
[root@server3 www]# vim index.html
<h1>www.westos.org - server3</h1>
[root@server3 www]# cd /bbs
[root@server3 bbs]# vim index.html
<h1>bbs.westos.org - server3</h1>
3.重启httpd服务
[root@server3 bbs]# /etc/init.d/httpd restart
4.测试:
- 在客户端添加解析
[root@foundation64 ~]# vim /etc/hosts
172.25.5.1 server1
172.25.5.3 www.westos.org bbs.westos.org
- 访问测试
[root@foundation5 ~]# curl www.westos.org
<h1>www.westos.org - server3</h1>
[root@foundation5 ~]# curl bbs.westos.org
<h1>bbs.westos.org - server3</h1>