我想选择一个基于自定义散列函数的后端,它会散列客户机ip (我知道这并不理想,但我正在尝试这种方法)。
伪配置看起来像,
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也是如此.
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发布于 2022-06-15 14:36:44
才能解决这个问题。
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 https://stackoverflow.com/questions/72490620
复制相似问题