在关于HTTP流的Railscasts中,一些评论者确认可以使用Apache + Passenger进行http流媒体传输,但奇怪的是我在谷歌上找不到任何相关指导。此外,Rails文档也没有提供任何指导。所有详细的指导都是关于Unicorn的。我肯定不是唯一想要在Apache和Passenger上进行http流媒体传输的人。请帮忙给予指导。
HTTP流媒体更正确地称为分块传输编码。
以下是我所知道的要求(可能还有其他要求):
Ruby 1.9.x
流式传输需要Ruby 1.9的线程功能。
兼容的中间件
您使用的任何中间件都不能修改HTTP响应。
Passenger
必须关闭passenger_buffer_response选项。
客户端支持
客户端必须声明使用HTTP 1.1或发送TE请求头。
我模糊地记得在某个地方读到过需要nginx,但我找不到任何参考资料。
希望这可以帮助您。
昨天我刚刚在Apache下设置了基于响应流的Passenger,一点问题都没有。这是我的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>