在配置 HAProxy 时,我想根据 cookie 的存在将流量发送到某些服务器。
例如:
这可能吗,如果可能,您如何设置?
小智 12
是的,这是可能的,但您需要自己调整/测试此配置。它应该是这样的:
注意:这仅检查“Cookie:”标头是否设置为“CompanyA”或“CompanyB”,区分大小写。您可以使用值,如果您擅长正则表达式,则可以使用 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
Run Code Online (Sandbox Code Playgroud)
小智 1
嗯,这是一个非典型的请求。我认为您可以使用HAProxy 中的“appsession”命令执行类似的操作 ,但我不知道它的确切算法。我的猜测是您必须询问 HAProxy 列表,或者查看 HAProxy 源代码。
难道你不能歧视比饼干更“丰富”的东西吗?例如,创建主机名“premium.company.com”和“standard.company.com”并根据主机名路由流量。
另一个想法可能是了解 HAProxy 自己的粘性会话 cookie 的格式(请参阅文档中的“cookie”部分)。如果您设置一个与 HAProxy 使用的名称和内部数据完全相同的 cookie,那么我猜 HAProxy 会按照您希望的方式路由传入请求...
归档时间: |
|
查看次数: |
14140 次 |
最近记录: |