Is there any way to access upstream response from configuration?

Hi,

I am trying to make caching selective based on cookies set by upstream.

Example: worpress sets wordpress_test_cookie for every page, thus
preventing
caching of pages unless Set-Cookie headers are ignored. On the other
hand,
ignoring Set-Cookie in general is bad idea, as in this case when other
cookies are set (like wordpress_logged_in) the response will be cached
as
well - and this is a security (and consistency) disaster.

What I want is to check if specific header or cookie in the response
is
set and make decision to cache or not based on this information.

Is this possible at all? I couldn’t find anything (like variables) that
allows to examine response for this purpose.

PS: I know that there are some “helper” plugins for wordpress, but
wordpress
is only one of possible applications, I need a solution that could work
without application support, that is why I am interested in response
examination.

Thank you!

Posted at Nginx Forum:

Francis, I know about no_cache and bypass - question is how to extract
specific cookie from the response (upstream reply), not the
request.

Posted at Nginx Forum:

On Sun, May 25, 2014 at 02:19:16PM -0400, aldem wrote:

Hi there,

I am trying to make caching selective based on cookies set by upstream.

http://nginx.org/r/proxy_no_cache

Is this possible at all? I couldn’t find anything (like variables) that
allows to examine response for this purpose.

http://nginx.org/en/docs/http/ngx_http_upstream_module.html#variables

If you specifically care about cookies, it will likely be easier if
you use 1.7.1 or newer. If you merely care about response headers,
then older versions will work too.

You may find it useful to use “map” too.

f

Francis D. [email protected]

On Sun, May 25, 2014 at 04:43:10PM -0400, aldem wrote:

Francis, I know about no_cache and bypass - question is how to extract
specific cookie from the response (upstream reply), not the request.

no_cache - yes.
bypass - no.

upstream reply - which part of

“”"
$upstream_cookie_name
cookie with the specified name sent by the upstream server in the
“Set-Cookie” response header field
“”"

is unclear or confusing?

f

Francis D. [email protected]

Oh… thank you very much, Francis - I don’t undestand how could I
overlook
this, please don’t hit me hard :slight_smile:

Though it is introduced only in 1.7.1, but $upstream_http_* is indeed
there
for older versions - perhaps, I am too tired so I missed it…

Posted at Nginx Forum: