X-Accel-Redirect testing

w00t nginx-forum at nginx.us
Tue Oct 2 12:01:32 UTC 2012

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:
> http://myshop.com/downloads/big_hit.flac
> 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:
> http://nginx.org/en/docs/http/ngx_http_core_module.html#internal
> 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; ).

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,231059,231311#msg-231311

More information about the nginx mailing list