[Mongrel] Rails' send_file, Mongrel, and *gasp* memory
runner at berkeley.edu
Fri Dec 22 09:03:29 EST 2006
I don't know much about mod_secdownload, but I do know that both
apache2.x.x and lighttpd can use the X-Sendfile header.
I have an Apache -> Mongrel setup where I've installed mod_xsendfile for
apache. When you want to send a file to the user
simply do something like:
response.headers['Content-Type'] = "application/force-download"
response.headers['Content-Disposition'] = "attachment;
response.headers["X-Sendfile"] = file.name
response.headers['Content-length'] = file.size_in_bytes
apache will then step in and serve the file.
Jonathan Leighton wrote:
> On Fri, 2006-12-22 at 00:06 -0800, Zed A. Shaw wrote:
>>> To be clear, send_file does not read the whole file into memory -- it blows
>>> chunks into the output stream. Mongrel and pure-Ruby FastCGI use StringIO to
>>> buffer the response before sending it to the client.
>>> X-Sendfile is definitely the way to go in any case.
>> Just to be extra clear, neither of the two main systems for hosting Rails would need to buffer the output if Rails didn't alternate between sending headers and body content.
>> And yes, X-Sendfile is the way to go.
> Thanks for all your responses. Just in case it makes a difference, I'll
> clarify about my setup. Basically we have an Apache on port 80 which
> can't be removed from the equation. The Rails app is served directly
> Apache -> Mongrel, and now I have made it so the /file/ path is proxied
> Apache -> lighttpd, which serves the files using mod_secdownload. I
> wasn't actually aware of X-Sendfile so that's interesting -- is this
> better, worse or equal to using mod_secdownload? I wouldn't have thought
> it made a difference as they both enable lighttpd to serve the static
> files, but if people think I should drop the mod_secdownload solution in
> favour of X-Sendfile I guess I could set up the application to go
> through lighttpd too.
> Thanks again,
> Mongrel-users mailing list
> Mongrel-users at rubyforge.org
More information about the Mongrel-users