【问题标题】:Heroku Cedar and nginx (gzip)Heroku Cedar 和 nginx (gzip)
【发布时间】:2012-01-20 21:47:18
【问题描述】:

根据此处接受的答案中的 cmets Rails how to Gzip Javascript? (Heroku) 和官方 cedar 文档 (http://devcenter.heroku.com/articles/http-routing#the_herokuappcom_http_stack):

由于对 Cedar 应用程序的请求是直接向应用程序服务器发出的,而不是通过像 nginx 这样的 HTTP 服务器代理,因此任何响应压缩都必须在您的应用程序中完成。对于 Rack 应用程序,这可以通过 Rack::Deflater 中间件来完成。对于压缩后的静态资源,请确保在中间件堆栈中的 ActionDispatch::Static 之前加载 Rack::Deflater。

但是,据我所知,我的应用程序正在 herokuapp.com (cedar) 上运行,并且根据 heroku 日志,正在使用 nginx 来提供数据(这很棒)。我还通过 Content-Encoding HTTP 标头确认它正在将数据压缩到浏览器。根据文档,这不应该发生在雪松上。我在这里遗漏了什么吗?

【问题讨论】:

  • 同样,我的印象是 Cedar 没有使用 Varnish 进行兑现,但在我的应用程序 (www.get3sixty.com) 上,有一个 Via: varnish 标题。我怀疑他们只是没有更新文档,但很高兴知道这一点!
  • 奇怪!它似乎很受欢迎 - 我检查了我知道在 Cedar 上的 4 个应用程序,2 个报告清漆标题,其他 2 个没有。

标签: heroku nginx gzip cedar


【解决方案1】:

您必须通过指向这些 IP 的域访问这些应用程序:

75.101.163.44
75.101.145.87
174.129.212.2

这些是顶点面,它们位于竹子和雪松应用程序的前面。清漆适用于竹子,但任何通过它们的请求最终也会通过清漆。

这些面孔仅适用于顶级域。如果您的应用位于 www 等子域下,则应将其设置为指向 appname.herokuapp.com 的 CNAME。当这样设置时,请求将不会通过 varnish。

有关 Apex 和 Heroku 的更多信息,请参阅此处:http://neilmiddleton.com/the-dangers-of-a-records-and-heroku/

【讨论】:

  • 如您所料,我们确实将所有 www 指向 A 记录,而不是使用 CNAME。感谢您的启发性帖子。
猜你喜欢
  • 1970-01-01
  • 2011-10-20
  • 2011-12-09
  • 2015-09-11
  • 2013-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多