首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Haproxy中基于客户端IP的动态后端选择

Haproxy中基于客户端IP的动态后端选择
EN

Stack Overflow用户
提问于 2022-06-03 13:49:38
回答 1查看 92关注 0票数 0

我想选择一个基于自定义散列函数的后端,它会散列客户机ip (我知道这并不理想,但我正在尝试这种方法)。

伪配置看起来像,

代码语言:javascript
复制
frontend myserver
    bind *:80 
    acl  MyHash(clientIP) %2 
    use_backend backend0 if {MyHash(clientIP)%2 -m int 0}
    default_backend backend1

backend backend0
    balance leastconn
    server server-1 <ip>:port check 
    server server-2 <ip>:port check 

backend backend1
    balance leastconn
    server server-3 <ip>:port check 
    server server-4 <ip>:port check 

我之所以这样做而不是下面的备选方案,是因为我不想一直将客户端连接到服务器,而是在属于同一集群的服务器之间分配负载。服务器-1-2组成一个集群,服务器-3-4也是如此.

代码语言:javascript
复制
frontend myserver
    bind *:80 
    default_backend mybackend



backend mybackend
    balance source
    hash-type consistent 
    server server-1 <ip>:port check 
    server server-2 <ip>:port check 
    server server-3 <ip>:port check 
    server server-4 <ip>:port check
EN

回答 1

Stack Overflow用户

发布于 2022-06-15 14:36:44

才能解决这个问题。

代码语言:javascript
复制
frontend myserver
    bind *:80 
    acl select_backend_0 src,field(-1,.),mod(2) -m int 0 
    acl select_backend_1 src,field(-1,.),mod(2) -m int 1
    # Use section can be further optimized, like using a map or something.
    use_backend backend0 if select_backend_0
    use_backend backend1 if select_backend_1
    

backend backend0
    balance leastconn
    server server-1 <ip>:port check 
    server server-2 <ip>:port check 

backend backend1
    balance leastconn
    server server-3 <ip>:port check 
    server server-4 <ip>:port check 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72490620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档