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 继续重新使用相同的连接池。