I’m trying to sent a file to the iphone (which requires byte-range
request support) using the rails send_file method. However, this
fails, I think because of mongrel. I think so because if I send the
iphone a file handled by nginx, it plays it fine. But then when I
serve the file with rails the iphone can’t play it.
Any ideas?
Alex
On Nov 8, 2007, at 10:43 AM, Pete DeLaurentis wrote:
I know that Lighttpd + Apache support X-Send-File, although I’m not
sure about nginx.
It does, though it’s inexplicably called X-Accel-Redirect.
http://wiki.codemongers.com/NginxXSendfile
http://blog.kovyrin.net/2006/11/01/nginx-x-accel-redirect-php-rails/
-Nate
Hi Alex,
Check out the x_send_file plugin. When you use this to send a file,
it just sends the location on disk to the web-server (in a special
HTTP header).
The webserver then looks up the file + streams it down to the
client. I’ve noticed a huge speed boost after switching to x_send_file.
Since you observed that files sent by nginx work on your iPhone, this
would allow nginx to do the heavy lifting for you.
I know that Lighttpd + Apache support X-Send-File, although I’m not
sure about nginx.
Hope this helps,
Pete
Thank you for the clarification!
On 11/7/07, Alex E. [email protected] wrote:
I’m trying to sent a file to the iphone (which requires byte-range
request support) using the rails send_file method. However, this
fails, I think because of mongrel. I think so because if I send the
iphone a file handled by nginx, it plays it fine. But then when I
serve the file with rails the iphone can’t play it.
The other suggestions about using x_send_file or the equivalent are
the answer, but just to clarify, Mongrel does not currently support
byte-range requests. We have discussed adding support for that,
however.
Kirk H.