我是否应该在 Apache 后端启用 KeepAlive 并使用 Varnish 作为前端?

我是否应该在 Apache 后端启用 KeepAlive 并使用 Varnish 作为前端?

KeepAlive我在 Web 服务器上使用 Varnish 作为前端,Apache 2 作为后端。这种设置下Apache 的优缺点是什么?

Apache 和 Varnish 现在在同一台服务器上运行,但我将来可以将它们放在不同的服务器上。

答案1

优点:

  • Varnish 和 Apache 之间的 TCP 握手不再需要在每个请求中进行,从而减少了开销。

缺点:

  • 如果您的 Varnish 服务想要通过连接耗尽来对您的 Apache 服务进行 DoS 攻击,那么它会更容易这样做吗?

您能解释一下是什么促使您提出这个问题吗?HTTP 1.1 隐含了 HTTP 连接保持功能,并且每个主要的 Web 服务器都默认启用此功能,这是有原因的;它是一种性能改进(尽管它只是很小的改进,服务之间没有延迟),但有几个与拒绝服务相关的警告,当 Apache 的唯一客户端是 Varnish 时,这些警告不适用。

我甚至建议将 Apache 的时间增加到KeepAliveTimeout高于默认值 5 秒,以让 Varnish 继续重新使用相同的连接池。

相关内容