CDN加速的实现(三)varnish--CDN推送平台管理

CDN推送平台管理简单的说就是利用web界面批量清除缓存

主机 ip 用途
server1 172.25.66.1 varnish服务
server2 172.25.66.2 后端服务器
server3 172.25.66.3 后端服务器
物理机 172.25.254.66 测试端,客户端

1.安装推送平台并编辑其配置文件
<1>首先在server1中安装httpd unizp php

[root@server1 ~]# yum install httpd unizp php -y

在这里插入图片描述
<2>解压从官网中下载的推送平台压缩包bansys.zip

[root@server1 mnt]# cd anzhuang
[root@server1 anzhuang]# ls
[root@server1 anzhuang]# unzip bansys.zip -d /var/www/html
[root@server1 anzhuang]# yum install unzip -y
[root@server1 anzhuang]# unzip bansys.zip -d /var/www/html

在这里插入图片描述
在这里插入图片描述
注意:
如果unzip没有安装成功,压缩包无法进行解压,必须重新安装unizp

<3>将压缩包的内容都放置共享目录下,且为了方便,直接放置/var/www/html下(这样就可以不用输入目录)

[root@server1 anzhuang]# cd /var/www/html
[root@server1 html]# ls
[root@server1 html]# cd bansys/
[root@server1 bansys]# mv * ../
[root@server1 bansys]# ls
[root@server1 bansys]# cd ..	##切换到上层目录下
[root@server1 html]# ls
[root@server1 html]# rm -rf bansys/
[root@server1 html]# ls

在这里插入图片描述
<4>编辑编辑推送的配置文件即config.php文件,定义主机列表的相关信息并对主机列表进行绑定

[root@server1 html]# vim config.php

在这里插入图片描述
文件中更改的内容如下(#只保留如下设置,其余注释掉):

<?php
 //varnish主机列表
 //可定义多个主机列表
 $var_group1 = array(
                        'host' => array('172.25.66.1'),
                                                'port' => '8080',                         
                    );

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


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

?>

在这里插入图片描述
注意:
因为varnish已经占用了80端口,所以这里的httpd端口更改成了8080,同时,httpd的配置文件中也需要将httpd的端口更改成8080

<5>更改httpd配置文件中的httpd的端口号并开启httpd服务,然后查看端口号,会发现设置成功

[root@server1 html]# vim /etc/httpd/conf/httpd.conf
[root@server1 html]# /etc/init.d/httpd start
[root@server1 html]# netstat -tnlp

在这里插入图片描述
文件中更改的内容如下:

Listen 8080

在这里插入图片描述
<6>在浏览器中输入server1的网址172.25.66.1:8080(因为已经更改了端口号,所以也要写端口号8080),会发现可以成功成功显示页,但点击页面中的内容并不会起作用
在这里插入图片描述
<7>编辑varnish的配置文件,设置访问控制

[root@server1 ~]# cd /etc/varnish/
[root@server1 varnish]# vim default.vcl 
[root@server1 varnish]# /etc/init.d/varnish reload

在这里插入图片描述
配置文件中的内容如下:

#一般将设置防空控制的函数放在最开始的位置
  7 acl westos {
  8 #设置访问控制
  9 "127.0.0.1";
 10 "172.25.66.0"/24;	#使网段在172.25.66的ip都可以访问到
 11 }
 ……
 22 sub vcl_recv {
 23 if (req.request == "BAN") {
 24 if (!client.ip ~ westos) {
 25 error 405 "Not allowed.";
 26 }
 27 ban("req.url ~ " + req.url);
 28 error 200 "ban added";
 29 }
 30 }
……
#return (pass);	#此题要求缓存,所以去掉这行代码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.测试(一)清除所有缓存
<8>在物理机上尝试访问www.westos.org,显示是有缓存的(HIT),(输入两次,是因为将缓存存入内存)

[root@foundation66 ~]# curl -I www.westos.org
[root@foundation66 ~]# curl -I www.westos.org

在这里插入图片描述
<9>在浏览器中输入网址172.25.66.1:8080,打开推送平台的网址,并清除所有的缓存

在推送内容中写入以下内容:.*$(将缓存全部清零)

在这里插入图片描述
在这里插入图片描述
<10>再次在物理机上尝试访问www.westos.org,显示没有缓存(MISS)

[root@foundation66 ~]# curl -I www.westos.org

在这里插入图片描述
3.测试(二)只清除网页上的缓存
<11>在物理机上尝试访问www.westos.org/index.html,显示是有缓存的(HIT)

[root@foundation66 ~]# curl -I www.westos.org/index.html
[root@foundation66 ~]# curl -I www.westos.org/index.html

在这里插入图片描述
<12>在浏览器中输入网址172.25.66.1:8080,打开推送平台的网址,选择http模式,并清除所有的缓存

在推送内容中写入以下内容:/index.html

在这里插入图片描述
在这里插入图片描述
<13>再次在物理机上尝试访问www.westos.org/index.html,显示没有缓存(MISS)

[root@foundation66 ~]# curl -I www.westos.org/index.html
[root@foundation66 ~]# curl -I www.westos.org/index.html

在这里插入图片描述

分析:
1.因为推送页面是动态的php,所以需要下载php软件
2.bansys 有两种工作模式,分别是:telnet 和 http 模式。
3.telnet 模式需要关闭 varnish 服务管理端口的验证,注释掉/etc/sysconfig/varnish 文件中的 “ -S $
{VARNISH_SECRET_FILE}”这行,重启 varnish 服务即可。
4.推送安装包可以在下面网址下载:http://code.google.com/p/varnish-php-bansys/
5.varnish相对于squi,速度快,可视化页面缓存,稳定性高,连接好,基本完全取代squid
6.数据传输的流程,静态资源适合缓存,判断数据类型,pipe数据类型
7.推送平台的压缩包下载的网址如下:http://code.google.com/p/varnish-php-bansys/

猜你喜欢

转载自blog.csdn.net/qq_39376481/article/details/89322891
今日推荐