Ruby Forum NGINX > Not sure if it's passing to the proxy properly

Posted by James Matthews (Guest)
on 05.02.2010 08:44
(Received via mailing list)
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).

James
Posted by Maxim Dounin (Guest)
on 05.02.2010 10:30
(Received via mailing list)
Hello!

On Fri, Feb 05, 2010 at 02:43:58AM -0500, James Matthews wrote:

> 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;
    }

Maxim Dounin
Posted by Igor Sysoev (Guest)
on 05.02.2010 10:36
(Received via mailing list)
On Fri, Feb 05, 2010 at 12:30:12PM +0300, Maxim Dounin wrote:

> > }
>     }
> 
>     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".


--
Igor Sysoev
http://sysoev.ru/en/
Posted by Maxim Dounin (Guest)
on 05.02.2010 10:57
(Received via mailing list)
Hello!

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

> > >         expires 30d;
> >         try_files $uri @fallback;
> 
> 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