我们在实现CDN高速缓存时有些时候通过命令等对CDN的管理有些麻烦,我们就可以使用CDN推送的方法同步后端服务内容
1.下载banzip,并安装到/var/www/html目录下
2.安装php(我们的网也界面时php格式的)
3.安装 httpd,并修改默认端口为8080并重启httpd,因为我们的varnish在上一个实验已经占用了80端口
4.编辑config.php
vim config.php
<?php
//可定义多个主机列表
$var_group1 = array(
'host' => array('172.25.77.1'), # 定义172.25.1.1为主机列表, 端口为80
'port' => '80', # varnish主机
);
//varnish群组定义
//对主机列表进行绑定
$VAR_CLUSTER = array(
'www.ljz.org' => $var_group1, # 绑定172.25.1.1主机
);
//varnish版本
//2.x和3.x推送命令不一样
$VAR_VERSION = "3"; # varnish的版本为3
?>
5.http访问server1的8080端口,出现cdn推送界面
6.如果是http工作模式,还得对varnish的defaults做配置
acl westos {
#设置访问控制,即白名单,允许本机和172.25.77网段和推送
"127.0.0.1"; #本机ip
"172.25.77.0"/24; #24是子网掩码
}
backend web1 {
.host = "172.25.77.2";
.port = "80";
}
backend web2 {
.host = "172.25.77.3";
.port = "80";
}
director ljz round-robin {
{ .backend = web1; }
{ .backend = web2; }
}
sub vcl_recv {
if (req.request == "BAN") { # 如果采用推送方式是BAN
if (!client.ip ~ ljz) { # 如果客户端的IP不是westos
error 405 "Not allowed.";
}
ban("req.url ~ " + req.url);
error 200 "ban added";
}
重启varnish
7.选择推送内容为清理缓存,选择http方式
8.真机测试
发现缓存清理成功