Varnish cdn 推送平台(基于Red Hat rhel6.5)
*做这个实验的时候,要把return(pass)注释掉,方便观察实验效果!
1.安装php语言环境(因为这个cdn平台是用PHP写的,要安装php环境)
yum install php -y
2.安装http服务,修改http使用端口。
vim /etc/httpd/conf/httpd.conf
136 Listen 8080 (136行)
/etc/init.d/httpd start
3.下载CDN推送平台的压缩包,将其解压到http的默认发布目录下,/var/www/html
unzip bansys.zip -d /var/www/html/ #解压包
cd /var/www/html/bansys/ mv * ..(将/bansys下的文件移动到/var/www/html下,在网页中可以显示出来!)
4.vim /var/www/html/config.php
定义varnish主机列表中:
group1 : host--> 172.25.77.1
定义varnish群组:对主机列表进行绑定
'www.wrh.com'
5./etc/init.d/httpd restart
6.server2主机中:
vim /var/www/html/index.html
改变原有内容
/etc/init.d/httpd restart
7.vim /etc/varnish/default.vcl
acl wrh {
#设置访问控制
"127.0.0.1";
"172.25.77.0"/24;
}
#在sub vcl_recv 下添加:
if (req.request == "BAN") {
if (!client.ip ~ wrh) {
error 405 "Not allowed.";
}
ban("req.url ~ " + req.url);
error 200 "ban added";
}
#注释掉return pass
8./etc/init.d/varnish reload #重新加载varnish配置
9.测试:
在浏览器中输入:172.25.77.1:8080 -->varnish主机的8080端口
进入CDN推送管理页面会看到设置的CDN群组
选择HTTP推送模式
推送内容为:/index.html --->就是www.wrh.com/index.html
或者在物理机中:
curl www.wrh.com/index.html
or
curl -I www.wrh.com/index.html
部分截图示例:
感受:
在用完varnish之后,感觉和squid形式差不多,相对于squid效率确实高,但是不可否认,varnish也是存在缺点的。
优点:
(1)Varnish访问速度更快,Varnish采用了“Visual Page Cache”技术,所有缓存数据都直接从内存读取,而squid是从 硬盘读取,因而Varnish在访问速度方面会更快。
(2)Varnish可以支持更多的并发连接,因为Varnish的TCP连接释放要比Squid快。因而在高并发连接情况下可以支持更多 TCP连接。
(3)Varnish可以通过管理端口,使用正则表达式批量的清除部分缓存,而Squid是做不到的。
(4) squid属于是单进程使用单核CPU,但Varnish是通过fork形式打开多进程来做处理,所以是合理的使用所有核来处理 相应的请求
缺点:
(1)varnish进程一旦Hang、Crash或者重启,缓存数据都会从内存中完全释放,此时所有请求都会发送到后端服务器,在 高并发情况下,会给后端服务器造成很大压力。
(2) 在varnish使用中如果单个url的请求通过HA/F5(负载均衡)每次请求不同的varnish服务器中,被请求varnish服 务器都会被穿透到后端,而且同样的请求会在多台服务器上缓存,也会造成varnish的缓存的资源浪费,也会造成性能 下降。