我试图caching我的网站使用Nginx代理模块,并具有以下要求:
如果请求有Cookie(在请求标题中)
如果请求没有cookie(在请求头中)
我使用If(重写模块)和任何指令:
if (!-e $http_cookie) { set $not_cache_rq 0; set $not_cache_rp 0; } if ($http_cookie) { set $not_cache_rq 1; set $not_cache_rp 1; } proxy_cache_bypass $not_cache_rq; proxy_no_cache $not_cache_rp; proxy_hide_header Set-Cookie;
我不知道如何调用cookie proxy_hide_header选项,当有cookie和没有cookie标题行。
请帮帮我。 非常感谢。
====
大家好
我pipe理客户的网站。 如果设置了cookie,所有请求和响应都包含Cookie标题行。
如果响应被caching。 caching将是所有客户端的Nginx返回,并且Set-Cookie标题行将使所有用户共享一个cookie值(这个值是会话,它对于每个用户必须是不同的)。
我想如果用户没有会话(即没有cookie存在 – 请求标题行将不具有Cookie行),请求将被推入到后端(apache)进行处理,并返回到用户的cookie。
如果用户已经有会话(即请求行中有一个cookie),那么Nginx将返回caching,caching中没有Set-Cookie行)
非常感谢!
如果您将proxy_cache_key设置为包含cookievariables的某个string,则具有不同cookie的所有用户都将拥有其自己的caching版本的页面。
喜欢这个
proxy_cache_key "$host$request_uri$cookie_auth_id";
这将允许不同用户的caching和独特的页面。