网站加速器 | varnish实现cdn网页推送

CDN推送详解

 

vm1

1,varnish服务器的启动,安装并启动httpd服务

2,varnish服务占用了80端口,所以修改httpd服务的端口为8080  /etc/httpd/conf/httpd.conf

Listen 8080

3,cdn推送平台是php语言写的,安装php

4,解压bansys.zip

[root@server1 ~]# yum install -y unzip

[root@server1 ~]# uzip bansys.zip -d /var/www/html   -d指定解压路径为httpd的默认发布目录

(mv * ..是把/var/www/html/bansys目录下面的内容移动到上层目录,方便直接通过ip访问,后面不用加/index.php)

5,修改php配置文件config.php

//可定义多个主机列表

 $var_group1 = array(

                        'host' => array('172.25.28.1'),   varnish的cdn推送平台ip

                                'port' => '80',      修改端口为varnish的80端口             

                    );

 //对主机列表进行绑定

 $VAR_CLUSTER = array(

                         'www.westos.org' => $var_group1,  绑定到域,第一个阵列

                     );

格式如下

重启httpd服务

6,访问测试

地址栏直接输入varnish服务器ip:8080访问cdn推送平台

推送时选择HTTP,否则会出现推送错误

推送可以是一个页面/index.html,也可以是一个目录/images*,不用写www.westos.com,上面cdn群组已经写了,也可以是一个url地址http://www.westos.org/index.html

7,修改varnish配置文件(default.vcl文件里面有lb和westos两个label,注意名字随意,但是不要冲突)

/etc/varnish/default.vcl

设置访问控制

acl westos {

"127.0.0.1";   #设置访问控制,本机回环接口

"172.25.28.0"/24; #这里写的是网段而不是ip

}

 

if (!client.ip ~ westos) {  如果客户端的ip不是westos里面的,那么405报错

error 405 "Not allowed.";

}

ban("req.url ~ " + req.url);

error 200 "ban added";

}

重新加载varnish服务

 

8,访问测试

varnish服务器ip:8080访问,因为没有在本机做解析,而推送测试需要用域名,因为在varnish里面写了,

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";

}

只有域名有作用,ip什么的都会出现404报错

 

注意:推送之后刷新测试页面是看不到结果的,因为浏览器和操作系统都有缓存,用curl命令可以直接访问页面,curl不存在浏览器和操作系统缓存的干扰

猜你喜欢

转载自blog.csdn.net/ha_weii/article/details/81290688