我使用 apache 作为负载均衡器和反向代理。
为了会话粘性,我使用节点的路由创建一个 cookie。
Header set Set-Cookie "h=.%{BALANCER_WORKER_ROUTE}e; path=/; domain=.domain.com" env=BALANCER_ROUTE_CHANGED
我该如何设置expires
cookie 中的值是从请求到来时起 X 分钟吗?
的文档模组头 http://httpd.apache.org/docs/2.2/mod/mod_headers.html甚至没有覆盖Set-Cookie
详细信息,因此没有有关可用于的动态语法的信息expires
.
我尝试设置max-age
但不幸的是max-age 不适用于 IE 11 http://mrcoles.com/blog/cookies-max-age-vs-expires/我们的很多客户都在使用它。
的文档mod_rewrite cookie http://httpd.apache.org/docs/current/rewrite/flags.html#flag_co确实介绍了如何在 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
?谢谢!
也许你可以用通用规则来保留你的想法
RewriteCond %{HTTP_COOKIE} h=\.([1-8]) [NC]
RewriteRule . - [CO=h:.%1:.domain.com:30:/]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)