varnish cdn推送平台 通过bansys实现
我们在实现CDN高速缓存时有些时候通过命令等对CDN的管理有些麻烦,我们就可以使用CDN推送的方法同步后端服务内容
1.安装bansys
在varnish服务器(server1)
首先需要安装:
yum install php unzip httpd -y
unzip bansys.zip -d /var/www/html/
mv /var/www/html/bansys/* /var/www/html/
2.更改端口
varnish服务器(server1)上的80端口已经被varnish占了,因此如果还要运行apache的话就需要更改apache的端口:
[root@server1 ~]# vim /etc/httpd/conf/httpd.conf
41 #Listen 12.34.56.78:80
42 Listen 8080 #将默认的80端口改为8080
43
44 #
45 # Dynamic Shared Object (DSO) Support
3.更改bansys主配置文件
在varnish服务器(server1)
[root@server1 ~]# cd /var/www/html/
[root@server1 html]# ls
bansys class_socket.php config.php index.php purge_action.php static
[root@server1 html]# vim config.php
[root@server1 html]# cat config.php
<?php
//varnish主机列表
//可定义多个主机列表
$var_group1 = array(
'host' => array('172.25.63.1'),
'port' => '8080',
);
//varnish群组定义
//对主机列表进行绑定
$VAR_CLUSTER = array(
'www.westos.org' => $var_group1,
);
//varnish版本
//2.x和3.x推送命令不一样
$VAR_VERSION = "3";
?>
之后开启apache服务:
[root@server1 html]# systemctl start httpd
4.推送
在客户端浏览器输入: http://172.25.63.1:8080/
出现如下界面表示安装成功:
5.更改varnish主配置文件
在varnish服务器(server1)中:
[root@server1 html]# vim /etc/varnish/default.vcl
33 acl westos {
34 "127.0.0.1";
35 "172.25.63.0"/24;
36 }
38 sub vcl_recv {
39 # Happens before we check if we have this in cache already.
40 #
41 # Typically you clean up the request here, removing cookies you don't need,
42 # rewriting the request, etc.
52 if (req.method == "BAN") {
53 if (!client.ip ~ westos) {
54 return(synth(405,"Not Allowed"));
55 }
56 ban("req.url ~ " + req.url);
57 return(purge); #取出相应缓存内容然后清除
58 }
59
60
61 }
[root@server1 html]# systemctl restart varnish #重启服务