1 varnish的进程工作模式
varnish启动会产生两个进程,manager主(管理managerment)进程,然后fork一个worker子进程
- manager进程作用:
读入(更新)配置,vcl文件编译,varnish监控,初始化varnish及提供varnish管理接口。Managerment进程会每隔几秒钟探测一下Child进程以判断其是否正常运行,如果在指定的时长内未得到Chind进程的回应,Managerment将会重启此Chind进程。
ps -ef #查看系统的进程
2 varnish的加速功能
- vcl_recv
vcl_recv是http请求到达后进入的第一个状态,在这个状态中,可以对请求进行以下的一些处理:
1 修改client请求,以减少缓存决策时的差异性;
2 根据client请求,决定缓存策略;
3 重定向请求;
4 决定处理请求的backend(即后端webserver)
- vcl_deliver
在缓存数据将要发送到客户端时调用
vim /etc/varnish/default.vcl
添加的内容:
测试:
在server1中重启varnish服务,然后在客户端进行如下的访问:
curl -I 172.25.0.1
清理缓存(在varnish服务器上清除,然后在客户端来进行测试):
- 清除所有缓存
varnishadm ban req.url "~" /
再次访问时,就会出现如上测试的结果,首次MISS,后边都会HIT
- 清除页面缓存
varnishadm ban req.url "~" /index.html
同样是首次访问为MISS,后边访问均为HIT