CDN推送:当后端服务器中的DNS有更新时,在varnish的缓存中应该及时同步后端服务中的内容
1..在server1安装httpd服务并编辑httpd配置文件,将136行的端口号修改8080(因为我们的varnish服务已经占用了80端口,避免冲突)
2.安装php(显示页面)
3.将banzip从物理机发送到server1,并在server1解压到/var/www/html(指定目录解压 -d)
5.将/var/www/html中的所有东西移到/var/www/html中
6.编辑config.php
vim config.php
<?php
//可定义多个主机列表
$var_group1 = array(
'host' => array('172.25.1.1'), # 定义172.25.1.1为主机列表,端口为80
'port' => '80', # varnish主机
);
//varnish群组定义
//对主机列表进行绑定
$VAR_CLUSTER = array(
'www.westos.org' => $var_group1, # 绑定172.25.1.1主机
);
//varnish版本
//2.x和3.x推送命令不一样
$VAR_VERSION = "3"; # varnish的版本为3
?>
7.在server1中打开httpd服务,在浏览器中输入172.25.1.1:8080,出现CDN推送管理页面
8.编写varnish的默认文件vim /etc/varnish/default.vcl
acl westos {
#设置访问控制,即白名单,允许本机和172.25.1网段和推送
"127.0.0.1"; #本机ip
"172.25.1.0"/24; #24是子网掩码
}
backend web1 {
.host = "172.25.1.2";
.port = "80";
}
backend web2 {
.host = "172.25.1.3";
.port = "80";
}
director westos round-robin {
{ .backend = web1; }
{ .backend = web2; }
}
sub vcl_recv {
if (req.request == "BAN") { # 如果采用推送方式是BAN
if (!client.ip ~ westos) { # 如果客户端的IP不是westos
error 405 "Not allowed.";
}
ban("req.url ~ " + req.url);
error 200 "ban added";
}
8.重新加载服务
/etc/init.d/varnish reload
9.在浏览器处推送内容,修改varnish主机server1中的缓存(选择HTTP方式)
10.这时我们回到物理机,查看访问情况,TTL时间未到,但是因为推送的原因,访问已经发生了变化