X-Sendfile <=> X-Accel-Redirect header

Igor Sysoev is at rambler-co.ru
Sat Sep 2 19:35:17 MSD 2006


On Sat, 2 Sep 2006, Aleksandar Lazic wrote:

> is behind yours X-Accel-Redirect the same idea as in X-Sendfile?!
>
> http://celebnamer.celebworld.ws/stuff/mod_xsendfile/
>
> ---
> .
> .
> If it encounters the presence of such header it will discard all output
> and send the file specified by that header instead using Apache
> internals including all optimizations like caching-headers and sendfile
> or mmap if configured.
> .
> .
> ---
>
> If so is it possible to add X-Sendfile to
> 'ngx_http_upstream_headers_in[]' in src/http/ngx_http_upstream.c ;-)

The "X-Accel-Redirect" header line is similar to the "X-Sendfile", but
has two differences:

1) in XAR you should set an URI, but not path. The URI must be mapped
    in nginx configuration to some location. The "internal" directive
    should be used to protect the location from direct access:

    location /protected/ {
        internal;
        root   /some/path;
    }

    As XAR does internal redirect, the request can be redirected
    to another proxied or FastCGI server. It is not limited to static
    files only.

2) Some header lines from original response (with XAR) are inherited
    by an redirected response:

    Content-Type
    Content-Disposition
    Accept-Ranges
    Set-Cookie
    Cache-Control
    Expires

    If some of these header lines are not set, then they will be set
    by a redirected response.

> BTW: I haven't seen a doc for this, have I overseen it?!

It is still undocumented but well-known and used by Russian users.


Igor Sysoev
http://sysoev.ru/en/





More information about the nginx mailing list