11

我使用 apache 作为负载均衡器和反向代理。对于会话粘性,我正在使用节点的路由创建一个 cookie。

Header set Set-Cookie "h=.%{BALANCER_WORKER_ROUTE}e; path=/; domain=.domain.com" env=BALANCER_ROUTE_CHANGED

如何expires将 cookie 中的值设置为从请求进入后的 X 分钟?

mod_headers的文档甚至Set-Cookie没有详细介绍,因此没有关于用于expires.

我尝试设置max-age但不幸的是 max-age 不适用于 IE 11,我们的许多客户都使用它。

mod_rewrite cookie的文档确实涵盖了如何在 cookie 中设置生命周期,这样我就可以使用这个丑陋的 mod_rewrite hack 让它工作,但我必须为每条路线做一个规则,因为它在我的<Proxy balancer://my_cluster>部分中不起作用:

RewriteCond %{HTTP_COOKIE} h=.1 [NC]
RewriteRule . -  [CO=h:.1:.domain.com:30:/]
RewriteCond %{HTTP_COOKIE} h=.2 [NC]
RewriteRule . -  [CO=h:.2:.domain.com:30:/]
RewriteCond %{HTTP_COOKIE} h=.3 [NC]
RewriteRule . -  [CO=h:.3:.domain.com:30:/]
RewriteCond %{HTTP_COOKIE} h=.4 [NC]
RewriteRule . -  [CO=h:.4:.domain.com:30:/]
RewriteCond %{HTTP_COOKIE} h=.5 [NC]
RewriteRule . -  [CO=h:.5:.domain.com:30:/]
RewriteCond %{HTTP_COOKIE} h=.6 [NC]
RewriteRule . -  [CO=h:.6:.domain.com:30:/]
RewriteCond %{HTTP_COOKIE} h=.7 [NC]
RewriteRule . -  [CO=h:.7:.domain.com:30:/]
RewriteCond %{HTTP_COOKIE} h=.8 [NC]
RewriteRule . -  [CO=h:.8:.domain.com:30:/]

关于如何完成的任何想法Header set Set-Cookie?谢谢!

4

2 回答 2

3

也许你可以用一个通用规则来保持你的想法

RewriteCond %{HTTP_COOKIE} h=\.([1-8]) [NC]
RewriteRule . - [CO=h:.%1:.domain.com:30:/]
于 2015-04-14T03:09:29.777 回答
0

我查看了贝宝网站的 cookie,发现他们将 cookie 时间设置为过去一年 -(01 -01-1970)。这背后的原因可能是停止重复使用 cookie。

于 2016-07-22T03:15:47.940 回答