一.varnish简介
1.Varnish的工作原理图
-
Varnish是一款高性能的开源反向代理服务器和缓存服务器。
2.varnish的特点 -
varnish可以通过端口进行管理,使用正则语句做到清除缓存的功能,这些squid都做不到,但是在varnish高并发的情况下,资源消耗较高,而且varnish服务进程一旦崩溃,重启,内存中的数据将会全部丢失。
-
varnish与一般服务机器软件类似,就是一个web缓存代理服务器。
-
varnish的进程:master(management)进程和child(worker,主要做cache的工作)进程。master进程读入命令,进行一些初始化,然后fork并监控child进程。child进程分配若干线程进行工作,主要包括一些管理线程和很多worker线程。
二.vcl简介
1.Vcl定义
Varnish Configuration Language(VCL)是varnish配置缓存策略的工具,它是一种基于‘域’的简单变成语言,使用VCL编写的缓存策略通常保存在.vcl文件中,其需要编以成二进制的格式后才能由varnish调用
2.VCL处理流程图
处理大致分为以下几个步骤:
-
Receive 状态:也就是请求处理的入口状态,根据 VCL 规则判断该请求应该是 Pass 或Pipe,或者进入 Lookup(本地查询)。
-
Lookup状态:进入此状态后会在hash表中查找数据,若找到则进入Hit状态,若没找到则进入miss状态。
-
Pass状态:在此状态下会进入后端请求,即进入Fetch状态。
-
Fetch状态:在Fetch状态下对请求进行后端的获取,发送请求,获得数据,并进行本地的存储。
-
Deliver状态:将获得的数据发送给客户端然后结束本次请求。
三.CDN简介
CDN全称:Content Delivery Network,即内容分发网络
-
基本思路:是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快更稳定。
-
通过在网络各位置处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时的根据网络流量和各结点的连接,负载状态以及到用户的距离和响应时间等综合信息将用户的请求重新导向距离用户最近的服务节点上。
-
目的:使用户可就近取的所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。
三.模拟varnish的实现
主机环境:
rhel6 selinux,iptables disabled
实验环境:
主机名(IP) | 服务 |
---|---|