<div dir="ltr"><div class="gmail_default" style="font-size:small;color:rgb(51,51,153)">The proxy_cache_key defines which key differentiate any cache object. By using $cookie_name in the string, the <i>value</i> of the cookie 'name' will be taken as part of the key.<br></div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153)">If multiple clients have the same combination of variables value (specifically, for cookie, presence, no presence or same value-s), they will grab the same object from the cache. If different content might get produced/grabbed with the same value in variables, then you have a problem.<br></div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153)"><br>As a sidenote, you are using proxy_pass_header Set-Cookie with proxy_hide_header Set-Cookie, which conflict one with each other. Remove them altogether.<br></div><div class="gmail_extra"><div><div class="gmail_signature"><font size="1"><span style="color:rgb(102,102,102)">---<br></span><b><span style="color:rgb(102,102,102)">B. R.</span></b><span style="color:rgb(102,102,102)"></span></font></div></div>
<br><div class="gmail_quote">On Thu, Mar 24, 2016 at 2:14 PM, john_smith77 <span dir="ltr"><<a href="mailto:nginx-forum@forum.nginx.org" target="_blank">nginx-forum@forum.nginx.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I am trying to cache the home page to a site. I am only caching the home<br>
page. If I put in a condition to check for cookies existing before caching,<br>
everything works as expected, but there is a high BYPASS rate due to the<br>
client not having the cookies the first time they visit the site. Once I<br>
took out the check for cookies, clients started getting cached cookies from<br>
other users. Is there a way to still have the cookies set from the origin<br>
server, and have a cache hit?<br>
<br>
server {<br>
    listen       80;<br>
<br>
    if ($request_uri !~* "home.html") {<br>
                set $skip_cache 1; }<br>
<br>
    location / {<br>
        proxy_pass <a href="http://backend" rel="noreferrer" target="_blank">http://backend</a>;<br>
        proxy_set_header Host      $host;<br>
        proxy_cache_bypass $skip_cache;<br>
        proxy_no_cache $skip_cache;<br>
        proxy_pass_header Set-Cookie;<br>
        proxy_cache one;<br>
        proxy_cache_key<br>
$scheme$proxy_host$uri$is_args$args$cookie_myCookie$cookie_myOtherCookie;<br>
        proxy_cache_valid  200 302  10m;<br>
        proxy_cache_valid  404      1m;<br>
        proxy_ignore_headers "Set-Cookie" "Cache-Control" "Expires";<br>
        proxy_hide_header "Set-Cookie";<br>
        proxy_cache_lock on;<br>
        if ($http_user_agent ~*<br>
'(iPhone|Android|Phone|PalmSource|BOLT|Symbian|Fennec|GoBrowser|Maemo|MIB|Minimo|NetFront|Presto|SEMC|Skyfire|TeaShark|Teleca|uZard|palm|psp|openweb|mmp|novarra|nintendo<br>
ds|hiptop|ipod|blackberry|up.browser|up.link|wap|windows<br>
ce|blackberry|iemobile|bb10)' ) {<br>
                proxy_pass <a href="http://backend_mobile" rel="noreferrer" target="_blank">http://backend_mobile</a>; }<br>
        if ($http_user_agent ~* '(iPad|playbook|hp-tablet|kindle|Silk)' ) {<br>
                proxy_pass <a href="http://backend_tablet" rel="noreferrer" target="_blank">http://backend_tablet</a>; }<br>
<br>
        root   /opt/rh/rh-nginx18/root/usr/share/nginx/html;<br>
        index  index.html index.htm;<br>
    }<br>
<br>
Posted at Nginx Forum: <a href="https://forum.nginx.org/read.php?2,265629,265629#msg-265629" rel="noreferrer" target="_blank">https://forum.nginx.org/read.php?2,265629,265629#msg-265629</a><br>
<br>
_______________________________________________<br>
nginx mailing list<br>
<a href="mailto:nginx@nginx.org">nginx@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx</a><br>
</blockquote></div><br></div></div>