如何在没有cookies的情况下使用ha-proxy进行负载平衡?

如果IIS .NET应用程序服务器,我目前正在使用HAProxy。 出现了一个无法预料的问题:我正在使用cookies进行负载均衡,这对于拒绝使用cookie的浏览器显然不起作用(鉴于英国的cookie法律近期有所变化,请不要在这里强硬)。

这是我目前的HAProxyconfiguration:

listen backend-servers 127.0.0.1:80 cookie bs insert balance roundrobin option persist option redispatch server appserver1 192.168.0.1:80 cookie bs1 server appserver2 192.168.0.2:80 cookie bs2 

我不想重新devise应用程序,所以我想在HAProxy中find解决方法。

有几个选项,如使用源IP平衡,或URL中的string,但你可以在HAProxy中使用多个方法? 你能configuration一个回退方法或这样的替代方法吗?

谢谢

如果cookie没有保存,那么haproxy只会根据您的balance关键字调度,这是roundrobin

从准则直接引用:

要求提供有关cookie的信息,并在使用cookie的情况下获得同意的情况是有例外的:

(a)仅用于通过电子通讯networking传送通讯的目的; 要么

(b)如果用户或用户要求提供信息社会服务,严格需要这种存储或访问。

如果你正在谈论一个cookie,让你在正确的服务器上…… 100%属于A类。如果你使用同一个cookie来处理其他事情,那就停下来。

欲了解更多信息: http : //www.ico.gov.uk/for_organisations/privacy_and_electronic_communications/the_guide/~/media/documents/library/Privacy_and_electronic/Practical_application/cookies_guidance_v3.ashx

balance sourcealgorithm就是你要找的; 从使用roundrobin

源IP地址被散列并且除以正在运行的服务器的总重量以指定哪个服务器将接收请求。 这确保了只要没有服务器发生故障,相同的客户端IP地址将总是到达同一台服务器。