CDN推送

一、什么是CDN推送

   当后端服务器中的DNS有更新的时候,在varnish的缓存中应该及时地同步后端服务器中的内容。相当于清空varnish中的缓存,当下一次进行访问时,直接从服务器中获取新的内容。

二、配置过程

   1、在varnish(server1)中安装httpd服务,并编辑httpd配置文件,将136行的端口号修改为8080(因为varnish服务器已经占用了80端口)

   2、安装php

   ---> yum install php -y

   3、安装bansys.zip压缩包。(压缩到/var/www/html目录下)

   --->  unzip  bansys.zip  -d /var/www/html

   --->  mv /var/www/html/*  /var/www/html

   --->  vim /vat/www/html/bansys/config.php

 <?php
 $var_group1 = array(
 'host' => array('172.25.2.1'),    # 定义主机列表ip和端口号
 'port' => '80',
 );
 //varnish 群组定义
 //对主机列表进行绑定
 $VAR_CLUSTER = array(
 'www.xniu.com' => $var_group1,     # 绑定varnish主机
 );
 //varnish 版本//2.x 和 3.x 推送命令不一样
 $VAR_VERSION = "3";                # varnish版本为3
 ?>
   4、在server1主机中打开httpd服务,在物理主机中输入172.25.2.1:8080可以显示CDN推送的界面

   

   5、编写varnish默认文件

   --->  vim /etc/varnish/default      # 添加即可

  acl westos {
  #设置访问控制
  "127.0.0.1";
  "172.25.2.0"/24;        # varnish主机的子网掩码
  }

 

  backend web1 {
  .host = "172.25.2.2";
  .port = "80";
  }
  backend web2 {
  .host = "172.25.2.3";
  .port = "80";
  }
  director lb round-robin {
  { .backend = web1; }
  { .backend = web2; }
  #把多个后端聚合为一个组,并检测后端健康状况
  }

  

  # 此时需要注释掉pass(防止直接到服务器端获取)

  sub vcl_recv {
  if (req.request == "BAN") {
  if (!client.ip ~ xniu) {
  error 405 "Not allowed.";
  }
  ban("req.url ~ " + req.url);
  error 200 "ban added";
  }
  }

   --->  /etc/init.d/varnish  reload

   6、在浏览器中进行测试(修改varnish的缓存后的结果是不一样的。此时我们选择http方式 )

   --->  curl  -I  www.xniu.com        # 对缓存时间进行查看

    1)首先,通过网页访问一个后端服务器。(此时,varnish加速器对网页进行缓存;之后进行刷新,是不会变化的)

   

   2)CDN推送后(到达推送界面,有推送完成提示后,点击返回)。

   

   3)然后点击刷新,www.xniu.com会切换到另一个服务器的默认发布目录。

 

    

    

 

posted @ 2018-09-14 00:22  UTHN_B  阅读(804)  评论(0编辑  收藏  举报