带有动态服务器模板的 Cookie 前缀

Cookie prefix with dynamic server template

我正在尝试实施粘性会话。我发现我可以为现有的 cookie 服务器添加一个前缀来识别它们。 See here for more

backend bk_web
  balance roundrobin
  cookie JSESSIONID prefix nocache
  server s1 192.168.10.11:80 check cookie s1
  server s2 192.168.10.21:80 check cookie s2

我的问题是我没有可以硬编码 cookie 名称的不同服务器。比如s1和s2.

backend java_container
    balance roundrobin
    cookie JSESSIONID prefix nocache
    server-template worker- 6 worker:8080 check resolvers docker init-addr libc,none

我知道服务器稍后将被命名为 worker-1、worker-2 等,但我不知道如何将此动态信息作为 cookie 名称。理想情况下应该是

server-template worker- 6 worker:8080 check resolvers docker init-addr libc,none cookie worker

您正在寻找 dynamic 选项作为 cookie 指令的一部分。您还需要查看 dynamic-cookie-key.

我尝试将这些片段拼凑在一起,结果确实有效。

backend java_container
    balance leastconn
    dynamic-cookie-key MYKEY
    cookie JSESSIONID prefix dynamic nocache
    server-template worker- 6 worker:8080 check resolvers docker init-addr libc,none

Cookie 现在看起来像这样,其中第一部分是散列服务器 IP。

JSESSIONID: 8a90ee411f256174~602EE52C3C605D45070366D4009EED56

https://www.haproxy.com/blog/whats-new-haproxy-1-8/#dynamic-cookies