企业CDN缓存系统varnish——配置有俩台后端服务器的varnish系统、varnish实现负载均衡、图形化清理缓存

1.意义

一个CDN节点(代理服务器)它用来负责调度,当客户发出请求,他将请求分配给多个后端服务器,然后再从这些后端服务器上获取资源,转发给用户。在企业中一个代理服务器通常对应着多个后端服务器(即web服务器),他为多个后端服务器做代理。

2.配置具有俩台后端服务器的varnish系统

由于设备原因,这里我将用具有俩台后端服务器(web服务器)的varnish系统来做实验测试

vim /etc/varnish/default.cvl

在这里插入图片描述
在这里插入图片描述

systemctl restart varnish  ##重启服务

在这里插入图片描述
上面具有俩台后端服务器(192.168.43.30和192.168.43.40)的varnish系统做好了,现在来配置一下这俩台后端服务器

rhel7_node2: 192.168.43.30
rhel7_node3: 192.168.43.40
在web1中:
在这里插入图片描述
在web2中:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
现在测试
首先在客户机上添加域名解析(由于电脑配置不行,所以就用varnish服务器对应的主机也充当了客户机)

vim  /etc/hosts

在这里插入图片描述
接着分别访问www.westos.org和bbs.westos.org
在这里插入图片描述

3.负载均衡

在企业当中的web后端服务器(为客户端提供资源的服务器)的性能有好有坏
性能差一点的就让它少干一点活,性能好的就多分担一点
现在就是node2这个web服务器性能比较差,node3这个服务器性能比较好
客户端通过varnish加速器访问node2的时候去轮询node3
实际上node2和node3上面存放的资源一模一样,只是为了实验效果明显起见,写为www.westos.org和bbs.westos.org
当客户端第一次访问node2的时候varnish去问node2要资源
当客户端第二次访问node2的时候varnish去问node3要资源
这个时候node2和node3上面的资源一模一样,客户端根本察觉不到,也缓解了node2(性能差)的访问压力
客户端通过varnish加速器访问node3的时候只去找node3(性能好)
以上这个思想就是在node2和node3之间实现调度(负载均衡),这个调度就是在varnish这个加速器上面实现的
实现负载均衡的调度算法很多,为了实验效果明显起见,我们使用轮询方式的均衡。

首先我们来查看一下打开负载均衡需要写什么

man vmod_directors   ##查看帮助

在这里插入图片描述
由man得知,首先我们需要调用vmod(directors)模块

vim /etc/varnish/default.cvl

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

systemctl restart varnish  ##重启服务

客户主机测试:
在这里插入图片描述
上面结果显示,客户主机访问bbs.westos.org结果是正确的,但是访问www.westos.org时,我们设置的访问此域名会是web1和web2交替接受请求并回答,现在访问结果一直没有改变,通过观察我们才发现,由于varnish服务器有缓存的作用,当第一次访问会留下一份数据,以便第二次访问,为了解决这个问题,我们应该清除缓存。
在这里插入图片描述

vim /etc/varnish/defaults.vcl  

在这里插入图片描述

systemctl restart varnish  ##重启varnish服务

再在客户端测试:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由结果可以看到,访问www.westos.org时请求结果是由web1和web2服务器交替执行的,当然如果要清除缓存的话你也可以手动清除

4.图形化清理varnish代理服务器上的缓存

前面清理缓存我们将过俩种,一直是return(pass)不保存缓存这种,还有一种手动清理缓存的 varnishadm ban req.url "~" / ,这俩种方法都是用命令行格式来做的,对于企业中不会命令行的人会有影响,所以我们用图形化来清理varnish代理服务器上的缓存。

首先我们需要下载软件包:
在这里插入图片描述
再安装httpd和php
在这里插入图片描述
解压上面的软件包到/var/www/html/目录
在这里插入图片描述
在这里插入图片描述
接着编辑一下vim config.php
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在重启httpd服务之前,我们需要更改一下他的端口号,80已经被varnish占用了,所以我们用8080

vim /etc/httpd/conf/httpd.conf

在这里插入图片描述

在这里插入图片描述
现在可以重启httpd服务

systemctl restart httpd

现在在客户主机上来测试一下:
在搜索栏中输入地址,可以看到CDN推送管理
在这里插入图片描述
因为CDN清除缓存等这些操作我们得管理员才能做,其他陌生人是不被允许的
所以我们得来设置一下用户管理:

vim /etc/varnish/default.vcl

在这里插入图片描述
在这里插入图片描述

systemctl restart varnish  ##重启varnish服务

现在在客户主机(我就在本机测试了)中开始测试:
先来看看varnish中有没有缓存
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
从上面看除varnish中有缓存了;
现在在图形界面上发送
在这里插入图片描述
在这里插入图片描述
再次访问varnish就没有缓存了
在这里插入图片描述
上面的.*是推送所有,也可以推送页面/index.html
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.varnish的具体作用流程查看varnish.book

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值