一、CDN推送平台
- 在server1上:
1.安装http,php,unzip 软件
2.下载并解压bansys.zip到/var/www/html下
[root@server1 ~]# unzip bansys.zip -d /var/www/html (-d :指定目录解压)
3.查看并切换到 bansys/下,把 bansys/目录下所有东西移到/var/www/html下,删除 bansys/目录
4.修改136行的端口号为8080,因为前边varnish服务已经占用了80端口避免冲突
[root@server1 html]# vim /etc/httpd/conf/httpd.conf
5.编辑config.php配置文件
[root@server1 html]# vim config.php
6.开启apache服务
[root@server1 html]# /etc/init.d/httpd start
7.查看8080端口是否使用
[root@server1 html]# netstat -tnlp
8.浏览器中输入172.25.23.0:8080,出现CDN推送管理页面
9.编辑/etc/varnish/default.vcl默认文件
[root@server1 html]# vim /etc/varnish/default.vcl
acl westos { #设置访问控制
"127.0.0.1";
"172.25.63.0"/24;
}
backend web1 {
.host = "172.25.63.2";
.port = "80";
}
backend web2 {
.host = "172.25.63.3";
.port = "80";
}
director lb round-robin{
{.backend = web1;}
{.backend = web2;}
}
sub vcl_recv {
if (req.request == "BAN") {
if (!client.ip ~ westos) {
error 405 "Not allowed.";
}
ban("req.url ~ " + req.url);
error 200 "ban added";
}
}
#当访问www.westos.org域名时从web1上取数据,访问bbs.westos.org域名时到web2取数据, 访问其他页面报错。
sub vcl_recv {
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";
}
}
sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT from westos cache";
}
else {
set resp.http.X-Cache = "MISS from westos cache";
}
return (deliver);
}
10.重启varnish服务
[root@server1 html]# /etc/init.d/varnish reload
测试一:
11.在真机里curl -I www.westos.org,第一次没有缓存到,是MISS
再次访问,第二次缓存到是HIT(后边一直是HIT)
12.cdn推送页面中写入.*& 点击确认提交,出现推送成功界面
13.在真机里再次curl -I www.westos.org,显示MISS,表示缓存已经清楚成功,否则仍为HIT
测试二:
14.在真机里curl -I www.westos.org/index.html,第一次没有缓存到,是MISS
再次访问,第二次缓存到,是HIT(后边一直是HIT)
15.cdn推送页面中写入index.html, 点击确认提交,出现推送成功界面
16.在真机里再次curl -I www.westos.org/index.html,显示MISS,表示缓存已经清楚成功,否则仍为HIT