Varnish——CDN推送管理平台(web界面批量清除缓存)

CDN推送管理平台

  • CDN推送: 当后端服务器中的DNS有更新时,在varnish的缓存中应该及时同步后端服务中的内容
  • 配置过程:
  1. 在server1
  • 安装httpd,并编辑httpd配置文件
  • 将136行的端口号修改8080(因为我们的varnish服务已经占用了80端口,避免冲突)
  • 下载php(显示页面)
  • 下载unzip(解压安装包)
[root@server1 ~]# yum install httpd unzip php -y
[root@server1 html]# vim /etc/httpd/conf/httpd.conf
Listen 8080
[root@server1 html]# /etc/init.d/httpd restart
  1. 将banzip安装包从物理机发送到server1,并在server1解压到/var/www/html(指定目录解压 -d)
  2. 将/var/www/html中的所有东西移到/var/www/html中
[root@server1 ~]# unzip bansys.zip -d /var/www/html
[root@server1 ~]# cd /var/www/html
[root@server1 html]# ls
bansys
[root@server1 html]# cd bansys/
[root@server1 bansys]# ls
class_socket.php  config.php  index.php  purge_action.php  static
[root@server1 bansys]# mv * ../
[root@server1 bansys]# cd ..
[root@server1 html]# ls
bansys  class_socket.php  config.php  index.php  purge_action.php  static
  1. 编辑config.php
[root@server1 html]# vim /var/www/html/config.php  
##前面不用的可以删掉
 <
 //varnish主机列表
 //可定义多个主机列表
 $var_group1 = array(
                        'host' => array('172.25.64.1'), # 定义172.25.64.1为主机列表,端口为8080
                                                'port' => '8080',                               
                    );
                                                
                                        

 //varnish群组定义
 //对主机列表进行绑定
 $VAR_CLUSTER = array(
                         'www.westos.org' => $var_group1,
                     );


 //varnish版本
 //2.x和3.x推送命令不一样
 $VAR_VERSION = "3";

?>
  1. 编辑物理机的解析
[root@foundation64 ~]# cat /etc/hosts
172.25.64.1 server1 www.westos.org bbs.westos.org
172.25.64.3 server3
  1. 打开浏览器,浏览器中输入172.25.64.1:8080,出现CDN推送管理页面
    Varnish——CDN推送管理平台(web界面批量清除缓存)_第1张图片
  2. 编写varnish的默认文件vim /etc/varnish/default.vcl
[root@server1 html]#  vim /etc/varnish/default.vcl
#设置访问控制,即白名单,允许本机和172.25.64网段和推送
acl westos{
    "127.0.0.1";  ##允许本机访问
    "172.25.64.0"/24;  ##允许172.25.64网段的所有主机访问
    }
sub vcl_recv{
    if(req.request == "BAN"){
        if(!client.ip ~ westos){
            error 405 "Not allowed.";
        }
        ban("req.url ~" + req.url);
        error 200 "ban added";
    }
}

backend web1 {
  .host = "172.25.64.2";
  .port = "80";
}

backend web2 {
  .host = "172.25.64.3";
  .port = "80";
}

director lb round-robin {
        { .backend = web1;}
        { .backend = web2;}

}

sub vcl_recv {
   if (req.http.host ~ "^(www.)?westos.org") {
       set req.http.host = "www.westos.org";
       set req.backend = lb;
       #return (pass);
}elsif (req.http.host ~ "^bbs.westos.org") {
     set req.backend = web2;
     } else {
         error 404 "westos  cache";
     }
}

sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT from westos.cache";
}
else {
set resp.http.X-Cache = "MISS from westos cache";
}
return (deliver);
}


[root@server1 html]# /etc/init.d/varnish reload
  1. 测试:
  • 第一次miss,则没有缓存到
    Varnish——CDN推送管理平台(web界面批量清除缓存)_第2张图片
  • 第二次hit,缓存成功(后面一直是hit)
    Varnish——CDN推送管理平台(web界面批量清除缓存)_第3张图片
  • CDN推送
    写入推送页面,点击确认提交

Varnish——CDN推送管理平台(web界面批量清除缓存)_第4张图片
Varnish——CDN推送管理平台(web界面批量清除缓存)_第5张图片

  • 再次测试,则为miss(表示缓存已经清除成功,否则还是hit)
    Varnish——CDN推送管理平台(web界面批量清除缓存)_第6张图片

你可能感兴趣的:(Linux)