一.CDN简介
CDN(Content Delivery Network)是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。
搭建CDN系统可以选择3种主流方案:
(1)squid
(2)varnish
(3)Nginx+memcache
本文选用varnish搭建CND节点集群。
二.Varnish实现反向代理
搭建环境:
三台redhat6.5版本虚拟机+一台物理机;
server1:172.25.33.1 Varnish代理服务器
server2:172.25.33.2 web服务器1
server3:172.25.33.3 web服务器2
Client:172.25.33.250 测试机
搭搭建网络yum源,三台虚拟机都需要配置好yum源
下载安装Varnish软件包
查看varnish配置文件
[root@server1 ~]# rpm -qc varnish
修改配置文件
vim /etc/sysconfig/varnish
##varish的配置文件 ###这个配置文件里面有下面两个地方需要注意:
一、
上面图的三处分别记录着,varnish软件所能支持的最大的文件的数
第二个是最大的内存支持:82M
第三个是支持的进程数:unlimited不限制
二、
上面的这一部分是让varnish来监听80端口。
为了让varnish达到更好的运行,必须要更改系统的限制文件(目的就是满足varnish的要求),实际上是满足不了的
由上面的截图可以知道,软件所能提供的最大文件数,最大内存和最大的进程数和系统哦所能提供的数字是不一样的,这就导致在启动varnish的时候会有报错。(系统所能提供的是根据设备的硬件配置决定的)
所以就需要修改系统的限制,配置方法:
vim /etc/security/limits.conf
在文件的最后面加上系统给varnish的限制:
修改varnish运行的配置文件:
vim /etc/varnish/default.vcl
backend就是varnish代理的后端机器的ip地址
设置好之后重启varnish服务
/etc/init.d/varnish restart ###后面重启varnish服务多用reload
测试:在172.25.33.2开启一个httpd的服务:
在真机上curl 172.25.33.2,得到如下结果