Varnish缓存代理服务基本介绍

Varnish是一款HTTP服务反向代理缓存软件.它接收来自客户端的请求 并尽可能的从缓存中返回给客户端请求的内容. 如果Varnish不能从缓存中找到客户端请求的内容,它会将请求转发到后端服务器,然后获取后端服务器的返回内容并将内容存储在缓存中,最后将内容发送给客户端。

当客户端的请求已经被缓存的时候,通常Varnish返回请求内容的时间是毫秒级的,这和通过后端服务器返回客户端请求内容花费的时间是两个数量级的, 所以,你肯定是希望大多数的客户端请求都可以直接从Varnish的缓存中返回给客户端.

Varnish决定是否缓存请求内容是基于后端服务器的响应内容的. 后端服务器可以通过设置HTTP响应头`Cache-Control`这个参数来指示Varnish缓存请求内容. 在有一些情况下Varnish是不会缓存请求内容的,其中最常见的一种就是请求内容中使用了cookie. 因为cookie是一种标识特定的客户端的web对象, Varnish默认不缓存带有cookie的请求内容.

Varnish的这种行为和它大多数的功能一样都是可以通过Varnish配置语言(VCL)写入不同的策略来改变的。 可以参考:ref:users-guide-index 来详细的学习如何做到这点。

性能

Varnish具有优越的结构设计和高性能的设计宗旨. 它通常只受限于网络传输速度, 高效率使得它的性能不再是问题.你应该专注于让你的web程序更好的工作,让自己在一定程度上不用关心Varnish性能和扩展性。

灵活性

除了性能之外,另外一种Varnish的核心功能就是灵活的配置语言VCL. VCL可以让你编写不同的策略来定义怎样处理不同的客户端请求.

通过这样的策略你可以定义哪些内容可以被缓存, 从哪个源站获取内容,哪些客户端请求和后端服务返回内容应该被改写。

支持的操作系统平台

Varnish被设计是运行在高版本的linux和FreeBSD平台的.它最理想的使用体验也是基于这些平台的 在这里要感谢我们的贡献者。 当然它也可以运行在 NetBSD, OpenBSD, OS X 和各种Solaris衍生的操作系统平台列如: Oracle Solaris, OmniOS 和 SmartOS.

关于Varnish的开发过程

Varnish是一个社区驱动项目. 它的发展目前是由Poul-Henning Kamp (架构师), Rogier Mulhuijzen (Fastly) 和 Lasse Karstensen (Varnish软件工程师)组成的理事会监督的 如果你想为Varnish的发展做出贡献,请先参阅:https://www.varnish-cache.org/trac/wiki/Contributing

联系方式

你可以通过多种渠道联系我们. 对于实时聊天你可以通过域名irc.linpro.net访问我们的IRC的#varnish 和 #varnish-hacking 频道. 我们有两个邮件列表可以使用.一个是用来做用户提问和开发讨论的.参见 https://www.varnish-cache.org/lists 在这个网站中还有一个论坛用来提供信息和用户注册的.

现在你对Varnish是什么应该有了一个大概的认识,让我们看看能否启动并运行它吧.

Table Of Contents

Previous topic

Varnish教程

Next topic

启动Varnish

This Page