CDN 推送:
当后端服务器的dns有更新时,在varnish缓存里应该及时同步后端服务里的内容
搭建步骤:
前提:需要安装有php、unzip、httpd
1.获得php资源,并进行解压
[root@server1 ~]# ls
anaconda-ks.cfg install.log install.log.syslog varnish
[root@server1 ~]# cd varnish/
[root@server1 varnish]# unzip bansys.zip -d /var/www/html/
2.将解压的文件移动到apache默认发布目录下
[root@server1 html]# mv /var/www/html/bansys/* /var/www/html/
3.编辑config.php
1 <?php
2
3 //varnish主机列表
4 //可定义多个主机列表
5 $var_group1 = array(
6 'host' => array('172.25.254.1'),
7 'port' => '8080',
8 );
9
10
11 //varnish群组定义
12 //对主机列表进行绑定
13 $VAR_CLUSTER = array(
14 'www.westos.org' => $var_group1,
15 );
16
17
18 //varnish版本
19 //2.x和3.x推送命令不一样
20 $VAR_VERSION = "3";
21
22 ?>
4.修改httpd端口,避免与varnish发生冲突
5.编辑物理机的解析
测试:物理机
6.http 模式下需要对varnish的配置文件进行设定
vim /etc/varnish/default.vcl
7 acl westos {
8 "127.0.0.1";
9 "172.25.254.0"/24;
10 }
11 backend web1 {
12 .host = "172.25.254.2";
13 .port = "80";
14 }
15
16 backend web2 {
17 .host = "172.25.254.3";
18 .port = "80";
19 }
20
21 director lb round-robin{
22 { .backend = web1;}
23 { .backend = web2;}
24 }
25
26 sub vcl_recv {
27 if (req.request == "BAN") {
28 if (!client.ip ~ westos) {
29 error 405 "Not allowed.";
30 }
31 ban("req.url~" + req.url);
32 error 200 "ban added";
33 }
34 }
35 sub vcl_recv {
36 if (req.http.host ~"^(www.)?westos.org") {
37 set req.http.host = "www.westos.org";
38 set req.backend = lb;
39 #return (pass);
40 }elsif (req.http.host ~"^bbs.westos.org"){
41 set req.backend = web2;
42 }else {
43 error 404 "ERROR";
44 }
45 }
46
47 sub vcl_deliver {
48 if (obj.hits>0){
49 set resp.http.X-Cache = "HIT from westos cache";
50 }
51 else {
52 set resp.http.X-Cache = "MISS from westos cache";
53 }
54 return (deliver);
55 }
[root@server1 html]# /etc/init.d/varnish reload
测试:
一般情况下:
用页面进行推送:
测试:(页面信息发生了改变,信息被更新)