X-Accel-Redirect

Maxim Dounin mdounin at mdounin.ru
Wed Sep 30 14:07:14 MSD 2009


Hello!

On Wed, Sep 30, 2009 at 06:59:26PM +1000, Jeff Waugh wrote:

> <quote who="pepejose">
> 
> > -- In the first case X-Accel-Redirect not working because the image is in
> > memory?  -- If I change the second case to:
> > 
> > header("Content-type: image/jpeg"); header("X-Accel-Redirect: /$image");
> > readfile($image);
> > 
> > how can I know if the header X-Accel-Redirect is working?
> 
> The X-Accel-Redirect header basically says:
> 
>   Dear nginx (or some other frontend),
> 
>   I know you're talking to me with fastcgi or http (proxy), but now I've
>   figured out that I'm just going to be sending the client a file. You can
>   do this better than me (by talking directly to the kernel and disk, and
>   not sending the file over the fastcgi or proxy connection), so here's the
>   name of the file.
> 
>   Love,
> 
>   Backend Application
> 
> 
> So, what you want to do in your backend is this:
> 
>   header("Content-type: image/jpeg");
>   if ( X_ACCEL_DIRECT ) { // this shoudl configurable in a productised app
>     header("X-Accel-Redirect: /$image");
>     exit;
>   }
>   readfile($image); // send the image if we're not using X-Accel-Redirect
> 
> 
> The initial path should probably be mildly more unique though, so you can
> deal with it separately in your nginx configuration. But not necessarily.
> 
> Short answer: X-Accel-Redirect is helpful only when the file is on disk.

Not really.  It may as well mean "Dear nginx, I'm really sorry but 
I have no file in question available here.  But I'm sure it should 
be available from this URI (that will map to different backend), 
try it."

But sending file contents along with X-Accel-Redirect header is of 
course meaningless.

Maxim Dounin

> 
> :-)
> 
> - Jeff
> 
> -- 
> linux.conf.au 2010: Wellington, NZ                http://www.lca2010.org.nz/
>  
>   "First-born children are less creative but more stable, while last-born
>          are more promiscuous, says US research." - BBC News, 2005
> 





More information about the nginx mailing list