如何在 Heroku 上使用 Rails 3.2.2 实现 SPDY?
Posted
技术标签:
【中文标题】如何在 Heroku 上使用 Rails 3.2.2 实现 SPDY?【英文标题】:How to implement SPDY with Rails 3.2.2 on Heroku? 【发布时间】:2012-05-12 01:44:39 【问题描述】:我听说 SPDY 是事情的发展方向,我想尝试将它与我正在运行的 Rails 站点一起使用。但是,我找不到任何教程,而且我发现的一个 gem 似乎不起作用(每个人都在所有浏览器上报告相同的错误)。
目前是否可以使用 Rails 应用在 Heroku 上实现 SPDY?
【问题讨论】:
一年多过去了——现在在 Rails 4 和 Heroku 中可以实现吗? 请注意,SPDY 仅适用于 TLS。 【参考方案1】:您可以在 Heroku 应用程序前设置反向代理。 一种方法是使用 Dockhero 插件。
这里有一个示例,它为使用 Heroku 托管的 Rails 应用提供 SPDY/HTTP/2/QUIC 支持 - https://github.com/dockhero/quic-protocol-demo
Dockhero 插件于 2016 年 9 月处于 Private Alpha 阶段,通过https://dockhero.io/注册免费试用
【讨论】:
【参考方案2】:尝试设置CloudFlare SPDY CDN/代理服务
【讨论】:
【参考方案3】:不,今天没有办法在 Heroku 上获得 SPDY,尽管我确实希望将来会改变。 Heroku 有自己的 HTTP“路由结构”,其前端是 nginx 前端。 nginx 团队正在开发一个 SPDY 模块,但它的发布日期还没有确定。此外,Heroku 需要将它安装在他们的前端等上——换句话说,它需要一些仔细的协调。
如果您有兴趣使用 Rails 测试 SPDY,我建议您查看 mod_spdy for Apache。您应该能够将Passenger 与mod_spdy 结合使用,尽管现在必须在Heroku 之外运行。
【讨论】:
更新:“对 Cedar 应用程序的请求是直接向应用程序服务器发出的——而不是通过像 nginx 这样的 HTTP 服务器代理...”(devcenter.heroku.com/articles/http-routing)。这并不意味着 SPDY 更接近在 Heroku 上可用。我只是澄清一点,现在 nginx 已经不在 Cedar 堆栈中了。 Ross,我相信前面还有“路由网格”,它负责 SSL 终止。这意味着 NPN 协商可能仍然不可能。以上是关于如何在 Heroku 上使用 Rails 3.2.2 实现 SPDY?的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 Procfile 在 Heroku 上禁用 Rails web dyno?
如何查看在 heroku 上运行的 rails 服务器,以便在发送 REST 请求时查看完整输出?