使用 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.rb
的 listen 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 流式传输的主要内容,如果未能解决你的问题,请参考以下文章
rails 4.1.0.rc1 nginx 和 unicorn 未在生产环境中提供资产
different between unicorn / unicorn_rails
如何在生产中使用 Nginx 和 Unicorn 配置 ActionCable?