##########################################
########## CDN高速缓存器Varnish ###########
##########################################
主机环境: rhel6 selinux and iptables disabled
实验主机: Server1:172.25.27.1 作为Varnish服务器
Server2:172.25.27.2 作为Apache服务端
Server3:172.25.27.3 作为Apache服务端
CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。
二、CDN高速缓存器Varnish定义
Varnish是高性能的开源HTTP加速器和反向代理服务器,其采用全新的软件体系机构,和现在的硬件体系紧密结合,与传统的squid相比,varnish具有性能更高、速度更快、管理更加方便等诸多优点。
三、Varnish处理HTTP请求基本流程图
(2)Lookup 状态:进入此状态后,会在 hash 表中查找数据,若找到,则进入 Hit (vcl_hit)状态,否则进入 miss (vcl_miss)状态。
(3)Pass 状态(vcl_pass):在此状态下,会进入后端请求,即进入 fetch (vcl_fetch)状态。
(4)Fetch 状态(vcl_fetch):在 Fetch 状态下,对请求进行后端的获取,发送请求,获得数据,并进行本地的存储。
Deliver 状态(vcl_deliver):将获取到的数据发送给客户端,然后完成本次请求。
四、Varnish服务器的搭建及配置
在server1操作如下(下文未具体说明则默认在server1中修改):
1.安装
######## 配置varnish 服务端口 ########
vim /etc/sysconfig/varnish # 编辑/etc/sysconfig/varnish文件
66 VARNISH_LISTEN_PORT=80 # 改变Varnishi服务端口
7 backend default {
8 .host = "172.25.27.2"; # 主机地址
9 .port = "80"; # 服务端口
/etc/init.d/varnish start # 开启服务
cd /var/www/html
vim index.html
<h1>server2</h1> # server2默认发布页面
<h1>server3</h1> # server3默认发布页面
########## CDN高速缓存器Varnish ###########
##########################################
主机环境: rhel6 selinux and iptables disabled
实验主机: Server1:172.25.27.1 作为Varnish服务器
Server2:172.25.27.2 作为Apache服务端
Server3:172.25.27.3 作为Apache服务端
一、CDN定义
CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。
二、CDN高速缓存器Varnish定义
Varnish是高性能的开源HTTP加速器和反向代理服务器,其采用全新的软件体系机构,和现在的硬件体系紧密结合,与传统的squid相比,varnish具有性能更高、速度更快、管理更加方便等诸多优点。
三、Varnish处理HTTP请求基本流程图
处理过程大致分为如下几个步骤:
(1)Receive 状态(vcl_recv):也就是请求处理的入口状态,根据 VCL 规则判断该请求应该是Pass(vcl_pass)或Pipe(vcl_pipe),或者进入 Lookup(本地查询)。(2)Lookup 状态:进入此状态后,会在 hash 表中查找数据,若找到,则进入 Hit (vcl_hit)状态,否则进入 miss (vcl_miss)状态。
(3)Pass 状态(vcl_pass):在此状态下,会进入后端请求,即进入 fetch (vcl_fetch)状态。
(4)Fetch 状态(vcl_fetch):在 Fetch 状态下,对请求进行后端的获取,发送请求,获得数据,并进行本地的存储。
Deliver 状态(vcl_deliver):将获取到的数据发送给客户端,然后完成本次请求。
四、Varnish服务器的搭建及配置
在server1操作如下(下文未具体说明则默认在server1中修改):
1.安装
yum install -y varnish-3.0.5-1.el6.x86_64.rpm varnish-libs-3.0.5-1.el6.x86_64.rpm
2.修改配置文件
######## 配置varnish 服务端口 ########
vim /etc/sysconfig/varnish # 编辑/etc/sysconfig/varnish文件
66 VARNISH_LISTEN_PORT=80 # 改变Varnishi服务端口
######## 配置一个后端服务器 ########
vim /etc/varnish/default.vcl # 编辑/etc/varnish/default.vcl文件7 backend default {
8 .host = "172.25.27.2"; # 主机地址
9 .port = "80"; # 服务端口
/etc/init.d/varnish start # 开启服务
在server2,3操作如下:
yum install -y httpd
/etc/init.d/httpd startcd /var/www/html
vim index.html
<h1>server2</h1> # server2默认发布页面
<h1>server3</h1> # server3默认发布页面
Server2:
Server3:</