之前为命令清理缓存,本次为cdn推送平台清理缓存,当后端服务器有更新时,在varnish缓存器中应该及时同步,即就是清空varnish中的缓存,当下次访问时直接从服务器中获取新的内容。
一、CDN推送平台的搭建
在server1:
1.安装软件:
yum install -y unzip php httpd
##修改httpd端口为8080并启动(varnish已经占用80)
2.解压安装包到指定目录:
unzip bansys.zip -d /var/www/html
3.移动解压目录到httpd默认发布目录下:
mv /var/www/html/bansys/* /var/www/htm
l
4.修改php默认配置文件:
修改监听端口为8080,维护cdn群组为www.westos.org:
<?php
//varnish主机列表
//可定义多个主机列表
$var_group1 = array(
'host' => array('172.25.0.1'),
'port' => '8080',
);
//varnish群组定义
//对主机列表进行绑定
$VAR_CLUSTER = array(
'www.westos.org' => $var_group1,
);
//varnish版本
//2.x和3.x推送命令不一样
$VAR_VERSION = "3";
?>
5.修改httpd监听端口为8080:
因为之前80端口被varnish占用
vim /etc/httpd/conf/httpd.conf
重启服务。
在浏览器:
搜索172.25.68.1:8080可以看到cdn推送平台页面:
有telnet和http两种,选择http:
可以看到之前设置的cdn群组,说明推送完成。
6.修改代理服务器配置:
vim /etc/varnish/default.vcl
acl westos {
"127.0.0.1";
"172.25.68.0"/24; #指定0网段的可以推送
}
}
if (req.method == "BAN") {
if (!client.ip ~ westos) {
return(synth(405,"Purging not allowed for " + client.ip));
}
ban("req.url ~ " + req.url);
return(purge);
}
systemctl restart varnish
必须注释掉return(pass)否则每次访问都会清除缓存
定义可以推送的网段:
定义清除缓存配置:
设置命中提示:
在真机端测试:
发现第一次缓存未命中,第二次命中:
利用页面清理缓存:
发现第一次缓存未命中,之后命中,说明缓存清理成功,第一次为获取新的内容:
7.清理指定页面缓存:
搜索www.westos.org下的index.html页面发现第一次缓存未命中,第二次命中:
利用页面清理index.html缓存:
再次搜索发现第一次未命中,第二次命中:
说明页面清理缓存成功。