在关于 HTTP 流的 Railscasts 中,一些评论者已经确认可以使用 Apache + Passenger 进行 HTTP 流,但奇怪的是我无法通过 Google 找到任何说明。
Rails 文档也没有提供任何说明。各处的所有详细说明均参考 Unicorn。我一定不是唯一一个想通过 Apache 和Passenger 进行http 流式传输的人。请帮忙。
在关于 HTTP 流的 Railscasts 中,一些评论者已经确认可以使用 Apache + Passenger 进行 HTTP 流,但奇怪的是我无法通过 Google 找到任何说明。
Rails 文档也没有提供任何说明。各处的所有详细说明均参考 Unicorn。我一定不是唯一一个想通过 Apache 和Passenger 进行http 流式传输的人。请帮忙。
HTTP Streaming 更准确地称为Chunked Transfer Encoding。
这些是我所知道的(可能有更多要求):
红宝石 1.9.x
流需要 Ruby 1.9 的线程特性
兼容的中间件
您拥有的任何中间件都不得修改 HTTP 响应
乘客
乘客缓冲区响应选项必须关闭
客户支持
客户端必须宣传它使用 HTTP 1.1 或发送 TE 请求标头。
我隐约记得在某处读到需要 nginx,但我在任何地方都找不到参考。
我希望这会有所帮助。
我昨天刚刚在 Apache 下设置了带有响应流的乘客,没有遇到任何问题。这是我在 httpd.conf 中的虚拟主机配置:
<VirtualHost *:80>
ServerName www.my.site.com
DocumentRoot /var/rails/myapp/public
<Directory /var/rails/myapp/public>
# This relaxes Apache security settings.
AllowOverride all
# MultiViews must be turned off.
Options -MultiViews
# Enable response streaming
PassengerBufferResponse off
</Directory>
</VirtualHost>