企业CDN缓存之varnish扩展功能

1.搭建一个varnish系统为具有多个资源的web后端服务器服务

上一篇的web服务器上面都只有一项资源,比如server2和server3上面只有一个域名对应的显示页面
实际在企业当中,比如百度的服务器:包括地图资源、新闻资源等等
现在我也想实现一台主机上放多个资源,也就是给web服务器建立虚拟主机,然后结合varnish加速器实现此功能
接下来我将在server3上面搭建apache虚拟主机,实现上述功能
这篇文章是基于上一篇的负载均衡做的,才可以看到明显的实验效果。
既然是在server3上面搭建虚拟主机,则应在server3上修改配置文件:
cd /etc/httpd/conf.d/
vim host.conf

<VirtualHost *:80>
DocumentRoot /www #发布目录
ServerName www.westos.org #域名
< /VirtualHost>
<Directory “/www”>
Require all granted
< /Directory>
<VirtualHost *:80>
DocumentRoot /bbs
ServerName bbs.westos.org
< /VirtualHost>
<Directory “/bbs”>
Require all granted
< /Directory>
企业CDN缓存之varnish扩展功能
mkdir /www /bbs
vim /www/index.html
企业CDN缓存之varnish扩展功能
vim /bbs/index.html
企业CDN缓存之varnish扩展功能
systemctl restart httpd
在客户端的测试结果:
企业CDN缓存之varnish扩展功能curl www.westos.org(有两个后端服务器轮询)
因为真机的解析文件里面写的是server1的ip对应www.westos.org的域名,因此会去找server1服务器要东西,此时的server1服务器的后端服务器一个是server2的发布页面,另一个是server3的www.westos.org的发布页面(这个是server1上写的配置文件,后端两个服务器轮询提供资源)
curl bbs.westos.org同理,直接通过server1加速器访问server3上面的bbs.westos.org的发布页面

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

之前我们清除varnish加速器上面的缓存采用的是命令的方式,现在采用图形化界面来清理缓存,图形化界面清理缓存,主要是权限列表的设置要会,不能让什么人都有权限去清理缓存,就是想实现把server1代理服务器上面的缓存实现图形化清除,可以有权限设置
现在server1部署这个服务,测试的时候在哪个浏览器里面都可以进行缓存清理
这个在server1代理服务器上面设置,拿到一个压缩包之后:
yum install -y unzip php httpd #安装这些服务
企业CDN缓存之varnish扩展功能
unzip bansys.zip -d /var/www/html #解压到apache下
企业CDN缓存之varnish扩展功能
cd /var/www/html
ls
cd bansys/
mv * …/
cd …
vim config.php #改php图形化服务的配置文件
企业CDN缓存之varnish扩展功能
企业CDN缓存之varnish扩展功能
vim /etc/httpd/conf/httpd.conf
修改http服务的默认发布端口为8080
企业CDN缓存之varnish扩展功能
systemctl start httpd
在浏览器里面搜:172.25.61.1:8080
选HTTP
企业CDN缓存之varnish扩展功能
编辑代理服务器的权限列表
vim /etc/varnish/default.vcl
写入权限列表:
acl westos{
“127.0.0.1”;主机自己
“172.25.61.0”/24;这个网段的所有主机都有权限清理代理服务器上面的缓存
}
企业CDN缓存之varnish扩展功能
再写入: if (req.method == “BAN”) {
if (!client.ip ~ westos) {
return (synth(405,“Not allowed.”)); }如果不是允许的ip就拒绝清理
ban("req.url ~ " + req.url);
return(purge);如果是就清理缓存
}
注释:return(pass),这个会一直清除缓存,之前的实验做的
清除这个代理服务器就不会缓存资源了,直接从服务器请求资源给客户端
systemctl restart varnish
企业CDN缓存之varnish扩展功能
在客户端进行测试:
curl -I www.westos.org 是miss
curl -I www.westos.org 是hit
curl -I www.westos.org 是hit
然后图形化清除缓存,输入.*,发送(清除所有缓存)
curl -I www.westos.org 是miss

curl -I www.westos.org/index miss
curl -I www.westos.org/index hit
curl -I www.westos.org/index hit
然后图形化清除缓存 /index.html,输入/index,开始清除缓存 (指定清除哪个缓存)
curl -I www.westos.org/index miss