文章目录
企业CDN缓存系统–varnish(三)–搭建具有多个后端的varnish系统
1.搭建具有多个后端的varnish系统
多个后端服务器可以减少服务器的压力,多个用户同时使用时更加流畅
搭建步骤
实验背景:
server1 172.25.70.1 varnish代理服务器
srever2 172.25.70.2 后端服务器1
server3 172.25.70.3 后端服务器3
真机 172.25.70.250 客户端
varnish代理服务器模块
vim /etc/varnish/default.vcl
backend 是后端的意思。
Varnish不仅仅可以定义多个backend,还可以把多个backend合成一个组,使用循环的方式把请求分配给组中的backends。并且Varnish会根据健康检查情况来判断后端服务器是否正常提供服务。
==vcl_recv模块的作用
重启服务,可以重启表示配置文件没有写错。
后端server3模块
yum install httpd -y
cd /var/www/html/
vim index.html #在测试页中写入server3方便查看后面的实验效果
systemctl start httpd
注意:这里的测试页面本来应该让用户看到相同的内容,在此处我们要更好的看到实验效果,所以把测试页的内容写为虚拟机的名字方便区分
对客户端的设置与测试
在客户端设置解析文件,解析文件应该写的是代理服务器以及它对应的应该找到的域名,因为客户端并不知道真实的web服务器是什么,只知道代理服务器。
vim /etc/hosts
2.负载均衡
如果用户使用率较高时,我们可以指定一个后端服务器工作一次,就换另一个服务器,两个服务器轮流工作,会减小服务器的压力,也就是轮询。
后端server3模块
1.设置虚拟主机
vim /etc/httpd/conf.d/vhost.conf #设置虚拟主机
2.建立目录添加内容
注意:这里的测试页面内容便于观察实验效果,内容不同。
server1 代理服务器模块
定义负载均衡。将server2和server3做成一个集群,访问时,server2一次server3一次
vim /etc/varnish/default.vcl
指定轮询的后端服务器:
注意:此处的return (pass)是为了查询一次就清除一次缓存,避免缓存对实验效果的影响
pass:表示进入 pass 模式,把请求控制权交给 vcl_pass 函数
vcl_pass 函数
此函数在进入 pass 模式时被调用,用于将请求直接传递至后端主机。
后端主机在应答数据后将应答数据发送给客户端,但不进行任何缓存,
在当前连接下每次都返回最新的内容