fastcgi_cache_key with cookie
António P. P. Almeida
appa at perusio.net
Tue Dec 27 08:01:04 UTC 2011
On 27 Dez 2011 07h46 WET, nginx-forum at nginx.us wrote:
> I've also tried this using the userid module I set a custom cookie
> like so
>
> userid on;
> userid_name "testid";
> userid_expires 100s;
>
> and set the fastcgi_cache_key like so
>
> fastcgi_cache_key
> $cookie_testid$request_method$scheme$host$request_uri
>
> the problem with this setup is when I login or logout, since the key
> is based on only $cookie_testid without $http_cookie, then the user
> will still see the logged in page even after logging out.
> Alternatively how would I user the cache purge module to purge the
> key when the user hits the login or logout button? this is the
> sample config
I think you can do it with map. Untested:
map $http_cookie $logged_in {
default 0;
~SESS 1;
}
Define two locations each with a different cache (anon/authenticated):
The default cache is the anon:
location @anon-cache {
error_page 418 @auth-cache;
if ($logged_in) {
return 418;
}
userid_expires 0s;
... # fastcgi cache stuff for anon users
}
location @auth-cache {
# set the user id expires here to a positive value
# fastcgi cache for authenticated users
}
I never played with the userid module. So...
--- appa
More information about the nginx
mailing list