António P. P. Almeida
appa at perusio.net
Tue Oct 2 12:19:33 UTC 2012
On 2 Out 2012 14h01 CEST, nginx-forum at nginx.us wrote:
> António P. P. Almeida Wrote:
>> XSendfile in Nginx is called X-Accel-Redirect.
>> The way X-Accel-Redirect works is that your app/backend sends a
>> "special" header with the location of the file that is to be served
>> by Nginx. Usually the application case is for speeding up the
>> delivery of protected/private files. Let's say you have a ecommerce
>> site that sells digital downloads. Then these files will be
>> protected and for speeding up the delivery your application sends
>> an X-Accel-Redirect header with the location of the file. Then the
>> file is delivered by Nginx as a regular static file.
>> Example: I request to download:
>> The file is stocked at /path/to/the/flac_files/big_hit.flac
>> your ecommerce sends an header:
>> X-Accel-Redirect: /path/to/the/flac_files/big_hit.flac
>> when Nginx sees this he knows that now the file is to be served
>> directly from the file system as a regular static file. Note that
>> the real location is hidden from the client.
>> Note that the real location must be protected from direct access by
>> the client always, be it from your app, be it from your server, for
>> example using the internal keyword:
>> In a nutshell that's how it works.
> I ended up using nginx as a reverse proxy, although this is what I
> wanted to avoid in the first place (bandwidth reasons). Main
> traffic passes through nginx which forwards it to apache by
> proxy_pass, and apache sends back the X-Accel-Redirect and nginx
> responds with the file (protected with internal; ).
Instead of Apache you can make your app return that header. For
example, on drupal there's a module that sends that header for
protected file systems.
> Posted at Nginx Forum:
> nginx mailing list
> nginx at nginx.org
More information about the nginx