一、对CDN的认识:
CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。
二、页面推送的实现
作用:更快更有效的实现后端服务器的某些页面的更新(只需要把更新的内容进行推送即可),让网络信息更加快速更新
虚拟机server1:172.25.88.1(服务器)
yum install php -y
yum install unzip -y
cd /var/www/html
unzip bansys.zip
yum install httpd(修改端口号为8080,不能和varnish端口冲突)
/etc/init.d/httpd start
vim /var/www/html/bansys/config.php
//varnish主机列表
//可定义多个主机列表
$var_group1 = array(
'host' => array('172.25.33.1'),
'port' => '80',
);
//varnish群组定义
//对主机列表进行绑定
$VAR_CLUSTER = array(
'www.westos.org' => $var_group1,
);
/etc/init.d/httpd start
vim /etc/varnish/default.vcl
acl westos {
"127.0.0.1";
"172.25.33.0"/24;
}
backend web1 {
.host = "172.25.88.2";
.port = "80";
}
backend web2 {
.host = "172.25.88.3";
.port = "80";
}
director linux 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";
}
if (req.http.host ~ "^(www.)?westos.org") {
set req.http.host = "www.westos.org";
set req.backend = linux;
} elsif (req.http.host ~ "^bbs.westos.org") {
set req.backend = web2;
} else {
error 404 "westos cache";
}
}
/etc/init.d/varnish reload
/etc/init.d/httpd restart
测试:在浏览器中:访问172.25.88.1:8080
在推送内容中输入想要更新的页面(清除缓存),选择HTTP
这里我们选择更新/index.html页面