Nginx logic (if cookie set, redirect here…) Is it possible?

So, I have a pretty basic need, but I can’t figure out if it’s even
possible, much less how to do it.

I have a main page that anyone can see. Most of the rest of the
application can be seen only if logged in (hence, a “set cookie”). So I
was thinking, as long as they don’t have a cookie set, they can just see
a cached version of nginx. I can get it caching with this:

proxy_cache STATIC;
proxy_cache_valid 200 1d;
proxy_cache_use_stale error timeout invalid_header updating
http_500 http_502 http_503 http_504;

And it helps a ton. (instead of 15 requests per second it gets over
1000). Now I just need some sort of “server logic” to say only serve the
cached page if they have no cookie, otherwise, load the dynamic page
(which will automatically redirect them into the app).

Any ideas?

On Fri, May 28, 2010 at 04:47:47PM +0200, Thomas Delonge wrote:

proxy_cache_use_stale error timeout invalid_header updating
http_500 http_502 http_503 http_504;

And it helps a ton. (instead of 15 requests per second it gets over
1000). Now I just need some sort of “server logic” to say only serve the
cached page if they have no cookie, otherwise, load the dynamic page
(which will automatically redirect them into the app).

Any ideas?

You should get the latest nginx version 0.8.38 and add:

proxy_no_cache   $cookie_NAME;


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

Igor S. wrote:

On Fri, May 28, 2010 at 04:47:47PM +0200, Thomas Delonge wrote:

proxy_cache_use_stale error timeout invalid_header updating
http_500 http_502 http_503 http_504;

And it helps a ton. (instead of 15 requests per second it gets over
1000). Now I just need some sort of “server logic” to say only serve the
cached page if they have no cookie, otherwise, load the dynamic page
(which will automatically redirect them into the app).

Any ideas?

You should get the latest nginx version 0.8.38 and add:

proxy_no_cache   $cookie_NAME;


Igor S.
Igor Sysoev

Thanks so much. I’ll install that version then.

I’ve had troubles understanding some things (with Nginx in general). I
understand the general structure of the configuration and virtual hosts
and such. But I haven’t really understood the variables. When you say
$cookie_NAME, does that mean I literally put that? Or Do I put
$cookie_SOMETHINGELSEHERE?

On Fri, May 28, 2010 at 05:20:29PM +0200, Thomas Delonge wrote:

Thanks so much. I’ll install that version then.

I’ve had troubles understanding some things (with Nginx in general). I
understand the general structure of the configuration and virtual hosts
and such. But I haven’t really understood the variables. When you say
$cookie_NAME, does that mean I literally put that? Or Do I put
$cookie_SOMETHINGELSEHERE?

If you cookie name is “user” then you should use $cookie_user.


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