一.varnish:
vcl处理过程大致分为如下几个步骤:
(1)Receive 状态,也就是请求处理的入口状态,根据 VCL 规则判断该请求应该是 Pass 或Pipe,或者进入 Lookup(本地查询)。
(2)Lookup 状态,进入此状态后,会在 hash 表中查找数据,若找到,则进入 Hit 状态,否则进入 miss 状态。
(3)Pass 状态,在此状态下,会进入后端请求,即进入 fetch 状态。
(4)Fetch 状态,在 Fetch 状态下,对请求进行后端的获取,发送请求,获得数据,并进行本地的存储。
(5)Deliver 状态, 将获取到的数据发送给客户端,然后完成本次请求。
二.cdn实现varnish的缓存:
(一)置后端服务器(test1):
1.下载安装包:
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
#改成80端口便于访问
3.修改varnish配置文件:vim /etc/varnish/default.vcl
开启服务:/etc/init.d/varnish start
配置服务器(test2):
4.安装apache:yum install httpd -y
开启服务:/etc/init.d/httpd start
5.编辑默认发布目录:vim /var/www/html/index.html
此时,在物理机访问172.25.152.1,在后端服务器中netstat -antlp可以看到有一个进程被占用。并且物理机上可以键入curl -I 172.25.152.1查看信息。
(二)查看缓存命中情况:
配置后端服务器(test1):
修改varnish配置文件:vim /etc/varnish/default.vcl
重新加载服务:/etc/init.d/varnish reload
此时,在物理机上可以键入curl -I 172.25.152.1查看信息以及查看缓存命中情况。
(三)修改限制文件:
#目的:内核、操作系统、软件:修改限制文件,保证流量大时,服务正常运行
后端服务器(test1):
vim /etc/sysconfig/varnish
vim /etc/security/limits.conf
#两个文件内数字相互对应
此时,usermod -s /bin/bash varnish后,su - varnish 后用ulimit -n和ulimit -t可以查看当前限制
(四)定义多个不同域名站点的后端服务器:
配置服务器(test3):
1.安装apache:yum install httpd -y
开启服务:/etc/init.d/httpd start
2.编辑默认发布目录:vim /var/www/html/index.html
配置服务器(test2):
修改默认发布目录:vim /var/www/html/index.html
配置后端服务器(test1):
3.修改varnish配置文件:vim /etc/varnish/default.vcl
重新加载服务:/etc/init.d/varnish reload
配置物理机本地解析:vim /etc/hosts
****************************************************
varnishadm ban.url .*$ #清除所有
varnishadm ban.url /index.html #清除 index.html 页面缓存
varnishadm ban.url /admin/$ #清除 admin 目录缓存
****************************************************