我看到很多关于将 nginx 与 Varnish 结合使用的讨论,我不明白为什么。nginx 还不够吗?
Nginx 具有 SSI,具有反向代理缓存,轻量级,具有 SSL,可与 cgi、fpm 等配合使用。
Varnish 具有相同的功能,但是不支持 ssl,也不支持 cgi。
答案1
我发现对于小型静态文件,Varnish 比 nginx 快约 5%——在 apache 前面使用 varnish,或者在 web 应用服务器前面使用 varnish 会带来很大的好处;但在 nginx 前面,好处就微不足道了(特别是考虑到开销和额外的复杂性)
答案2
首先,需要澄清的是:Nginx 是一个 Web 服务器,具有所需的所有功能和复杂性。它还具有缓存功能,但这不是其主要设计目标。
清漆不是Web 服务器。它无法充当该角色(无论如何,没有真正邪恶的 VCL 就不行)。它的作用是缓存另一台服务器提供的内容。如果需要,它可以更改请求或响应。
如果 nginx 可以处理您的流量,那么它就足够了。如果 nginx 无法跟上,那么增加其容量的一种方法是在它前面放置一个缓存,并让缓存处理尽可能多的请求。
例如,我们使用 Apache 从 Web 服务器集群运行许多相对复杂的 PHP 网站。当我们开始遇到容量问题时,我们在 Apache 集群前面放置了一对 Varnish 服务器。Varnish 主机现在可处理 85% 的所有传入请求,而无需打扰 Apache 后端。