一、 什么是Varnish
- 开源的反向代理/缓存加速组件;
- C语言开发;
- 可使用于各种规模的应用;
- “本地CDN”
- https://github.com/varnishcache/varnish-cache
二、 Varnish 基本工作原理
- Varnish可以安装在待加速的Web服务器上,也可以安装在单独的机器内;
- 安装好后,Varnish开始监听对应的HTTP端口
- Varnish后端可配置多个应用服务器,如果请求未命中缓存,则可以按对应规则到后端服务器获取数据;
- 运行时,Varnish先预分配一部分虚拟内存来保存需要缓存的内容,缓存的内容包括HTTP返回头以及对应的返回体数据;
- 缓存的内容默认是由特定序列的哈希值索引,默认的序列是请求的主机名(或IP)+URL;
三、 Varnish的配置原理
- Varnish使用VCL(Varnish Configuration Language)来控制缓存策略;
- VCL直接作用于Varnish内的有限状态机,使其可以快速处理流过的traffic;
- VCL在Varnish启动时会被编译并载入;
- VCL语法相对有限,可通过C语言编写的module模块(vmod)来扩展功能;
1. What Is Varnish Cache? - Getting Started with Varnish Cache [Book]