在 Varnish 前使用 Cherokee 而不是 nginx 来获得 HTTP 1.1 优化?

esp*_*eed 5 http nginx cache varnish cherokee

我们一直在运行 nginx -> uWSGI,现在我们正在评估将 Varnish 作为 nginx 和 uWSGI 之间的缓存层(类似于 http://www.heroku.com/how/architecture)。

但是,nginx 只支持背面的 HTTP 1.0,因此它必须为每个请求创建与 Varnish 的新连接。

许多人建议在 Varnish 之前运行 nginx,但是使用像 Cherokee 这样的东西来消除 HTTP 连接开销不是更有意义,因为它在后面支持 HTTP 1.1?

pol*_*ial 1

在放入后端缓存层时,我们也对此进行了辩论,我们也使用 nginx,但使用了鱿鱼和提供内容服务的 JVM。

如果您没有使用 nginx 特有的任何功能,您可以切换,我们已经构建了几个 nginx 模块。

您应该考虑连接设置的实际开销与端到端请求的开销。对于我们来说,测试时它总是 <2ms,甚至从内存缓存读取资产也需要更长的时间来响应(>5ms)。