使用 Rails 3.1 和 Unicorn 在 Heroku 上进行 HTTP 流式传输

Posted

技术标签:

【中文标题】使用 Rails 3.1 和 Unicorn 在 Heroku 上进行 HTTP 流式传输【英文标题】:HTTP Streaming on Heroku with Rails 3.1 & Unicorn 【发布时间】:2011-11-06 05:05:21 【问题描述】:

受RailsCast on HTTP Streaming 的启发,我决定在我的服务器上打开它。但是,Ryan 建议添加到我的 unicorn.rblisten 3000 :tcp_nopush => false 行与 Heroku 配合得不好(它们不允许您指定端口)。 Heroku 是否支持流式传输,如何打开它?

【问题讨论】:

【参考方案1】:

Heroku 通过环境变量 PORT 告诉您的应用程序要监听的端口。在您的 unicorn.rb 中检查此环境变量。

port = ENV["PORT"].to_i
listen port, :tcp_nopush => false

【讨论】:

谢谢 :D 配置实际上是普通的 ruby​​ 让我很震惊 :-/ 不过,这似乎与Rack::Deflater 不兼容。当 Deflater 与 HTTP 流一起使用时,我的页面不断出现传输分块错误。 Rack::Chunked 在中间件列表中应位于 Rack::Deflater 之前。 有谁知道deflater问题的解决方案?我在这里发布了一个单独的问题:***.com/questions/7986150/…

以上是关于使用 Rails 3.1 和 Unicorn 在 Heroku 上进行 HTTP 流式传输的主要内容,如果未能解决你的问题,请参考以下文章