在configurationHAProxy时,我想根据存在的cookie将stream量发送到某些服务器。
例如:
这是可能的,如果是的话,你如何设置它?
是的,这是可能的,但你需要自己调整/testing这个configuration。 它应该看起来像这样:
注意 :这只会检查“Cookie:”标题是否设置为“CompanyA”或“CompanyB”,区分大小写。 你可以玩弄值,如果你用正则expression式,你可以使用hdr_reg(Cookie)来代替。
frontend read_cookies bind :80 mode http acl is_companya hdr(Cookie) CompanyA acl is_companyb hdr(Cookie) CompanyB use_backend company_a if is_companya use_backend company_b if is_companyb default_backend company_c backend company_a mode http option forwardfor balance source option httpclose option httpchk server web1 172.16.0.11:80 check backend company_b mode http option forwardfor balance source option httpclose option httpchk server web2 172.16.0.12:80 check backend company_c mode http option forwardfor balance source option httpclose option httpchk server web3 172.16.0.13:80 check
Hmn,这是一个非典型的要求。 我想你可以用HAProxy中的“appsession”命令做这样的事情,但我不知道它的确切algorithm。 我的猜测是你必须问HAProxy列表,或看看HAProxy的源代码。
你能不能比cookies更“富有”? 例如,创build主机名“premium.company.com”和“standard.company.com”,并根据主机名路由stream量。
另一个想法可能是学习如何HAProxy的粘性会话自己的cookie被格式化(请参阅文档中的“cookie”部分)。 如果你设置一个与HAProxy使用自己完全相同的名称和内部数据的cookie,那么我猜测HAProxy会根据你的需要路由传入的请求。