Not sure if it's passing to the proxy properly

Maxim Dounin mdounin at mdounin.ru
Fri Feb 5 12:56:38 MSK 2010


Hello!

On Fri, Feb 05, 2010 at 12:35:45PM +0300, Igor Sysoev wrote:

> On Fri, Feb 05, 2010 at 12:30:12PM +0300, Maxim Dounin wrote:
> 
> > Hello!
> > 
> > On Fri, Feb 05, 2010 at 02:43:58AM -0500, James Matthews wrote:
> > 
> > > Hi,
> > > 
> > > I am passing my requests like this
> > >  if ( -f $request_filename){
> > >         expires 30d;
> > >         break;
> > > }
> > >         proxy_pass         http://127.0.0.1:20000;
> > > 
> > > However Apache is still serving everything (images included). How can I get
> > > it to move only through nginx (for images and other files).
> > 
> > Try this:
> > 
> >     location / {
> >         try_files $uri @fallback;
> >         expires 30d;
> >     }
> > 
> >     location @fallback {
> >         proxy_pass  http://127.0.0.1:20000;
> >     }
> 
> And do not forget about "root". Probably this was a cause why
> 
>  if (-f $request_filename) {
> 
> did not work. However, anyway you should use try_files instead of "if".

In the original config proxy_pass is configured at location level, 
and "if" won't "de-configure" it (r->content_handler will be set at 
location level, and will be used inside implicit location created 
by "if").

There is nothing wrong in original config, it works as expected.  
It just doesn't prevent proxy_pass from executing.

Maxim Dounin



More information about the nginx mailing list