Varnish

Varnish简介

Varnish是主要在FreeBSD上开发的缓存代理服务器,从 How our website works: dogfood 可以看到,开发者最关注的是FreeBSD平台。或许和 pfSense 类似,充分发挥了BSD系统的稳定性和网络协议高性能,FreeBSD是这些杀手级应用的良好平台。

  • 作用

Web应用加速器,同时作为http反向缓存代理

  • 特点

    • Varnish可以使用内存也可以使用硬盘进行数据缓存

    • 支持虚拟内存的使用

    • 有精确的时间管理机制

    • 状态引擎架构:通过特定的配置语言设计不同的语句

    • 以二叉堆格式管理缓存数据

  • Varnish的优势

    • Varnish访问速度快,因为采用了“Visual Page Cache”技术,在读取数据时直接从内存中读取

    • Varnish支持更多的并发连接,因为varnish的TCP连接比squid快

    • Varnish通过管理端口,使用正则表达式批量的清除部分缓存

  • Varnish的劣势

    • 进程一旦crash或重启,缓存的数据将从内存中完全释放

    • 在多台varnish实现负载均衡时,每次请求都会落到不同的varnish服务器中,造成url请求可能会穿透到后端

劣势解决方案

  • 在varnish的后端添加squid/nignx代理,这样防止了当varnish缓存被清空时,瞬间大量的请求发往web服务器

  • 在负载均衡上做url哈希,让单个url请求固定请求到一台varnish服务器上

Varnish应用场景

Varnish适合做WEB服务器的反向缓存代理,但是不适合做小型办公室的透明上网代理服务器。

参考

Last updated