Maxim Dounin Wrote:
-------------------------------------------------------
> Yes, nginx won't cache responses with cookies
> unless you
> specifically ask it to via proxy_ignore_headers
> directive[1].
>
> Please also note that if you do so, you may want
> to also instruct
> nginx to hide returned cookies from clients (via
> proxy_hide_header
> directive[2]), or you'll end up with multiple
> clients with the
> same cookie.
>
> Example configuration should look like:
>
> proxy_ignore_headers Set-Cookie;
> proxy_hide_header Set-Cookie;
>
> Depending on the actual headers your backend
> returns you may also
> need to ignore other headers as well for cache to
> work, notably
> Expires and Cache-Control.
>
> Alternatively, you may want to instruct your
> backend to not return
> headers which prevent caching.
>
> [1]
> http://wiki.nginx.org/HttpProxyModule#proxy_ignore
> _headers
> [2]
> http://wiki.nginx.org/HttpProxyModule#proxy_hide_h
> eader
>
Hello.
Thank you for the explanation. I now understand the problem and it is now working.
I want to add a condition where if a cookie with the name sess_id is included in the request, then the cache would be bypassed. I tried the following
if ($http_cookie ~* "sess_id") {
set $no_cache "1";
}
proxy_no_cache $no_cache;
proxy_cache_bypass $no_cache;
but it doesn't seem to work. What is the correct way to do this? Thank you very much.