高性能HTTP加速器Varnish——通过缓存实现加速功能

高性能HTTP加速器Varnish——通过缓存实现加速功能

1. Varnish进程的工作模式

Varnish启动会产生两个进程,master主(管理 management)进程和child子(工作 worker ,主要做cache的工作)进程

作用:

  • master进程读入(更新)配置,vcl文件编译,varnish监控,初始化varnish及提供varnish管理接口。
  • child进程分配若干线程进行工作,主要包括一些管理线程和很多woker线程。

注意:Manegement进程每隔几秒探测以下child进程以判断其是否正常运行,如果在指定的时长内未得到child进程的回应,management将会重启此child进程

#查看进程
ps -ef

在这里插入图片描述

可以看到,varnish两个进程,第二个进程的副进程号就是第一个的进程号

2. 配置Varnish服务器

在server1中:

vim /etc/varnish/default.vcl

 40 if (obj.hits > 0) {
 41         set resp.http.X-Cache = "HIT from kaiser cache";
 42 }
 43 else {
 44         set resp.http.X-Cache = "MISS from kaiser cache";
 45 }
 46 return (deliver);

systemctl restart varnish

vcl_deliver:在缓存数据将要发送到客户端时调用

在这里插入图片描述

查看缓存命中情况:没有缓存时第一次连接会显示MISS from kaiser cache,有缓存时连接它会显示HIT from kaiser cache

3. 测试

step1 在真机或者其他主机中:

#查看响应请求报文
curl -I 172.25.1.1

在这里插入图片描述

可以看到,第一次连接没有缓存显示MISS from kaiser cache,之后再连接就会显示HIT from kaiser cache

step2 清除缓存后再次测试:

#在server1中(清除所有)
varnishadm ban req.url "~" /

在这里插入图片描述

#在真机中
curl -I 172.25.1.1

在这里插入图片描述

step3 还可以清除指定的页面

访问指定的页面:

#真机
curl -I 172.25.1.1/index.html

在这里插入图片描述

#在server1中(清除指定缓存)
varnishadm ban req.url "~" /index.html

在这里插入图片描述

清除后再次连接:

#真机
curl -I 172.25.1.1/index.html

在这里插入图片描述

发布了190 篇原创文章 · 获赞 27 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_45775963/article/details/105006167