我遇到了HAProxy(1.8)的配置问题。
上下文:
问题:
这真让我心烦意乱......
所以我的问题是:如何防止HAProxy将客户端粘贴到后端的备份服务器上?
请在下面找到配置示例:
defaults
option redispatch
frontend fe_test
bind 127.0.0.1:8081
stick-table type ip size 1m expire 1h
acl acl_test hdr(host) -i whatever.domain.com
...
use_backend be_test if acl_test
...
backend be_test
mode http
balance roundrobin
stick on hdr(X-Real-IP) table fe_test
option httpchk GET /check
server test-01 server-01.lan:8080 check
server test-02 server-02.lan:8080 check
server maintenance 127.0.0.1:8085 backup
(我已经尝试为备份服务器添加较低的权重,但它没有解决此问题。)
我在文档中读到“stick-on”关键字有一些“if / unless”选项,也许我可以用它来编写基于后端服务器名称的条件,但我对语法没有任何线索使用,或者甚至是可能的。
欢迎任何想法!
答案 0 :(得分:2)
我这么傻!我对棒表配置非常着迷,我没想到要查看服务器选项......
有一个简单的关键字可以完美地解决我的问题:不粘
永远不要将分配给此服务器的连接添加到操纵杆表。这个 可以与备份一起使用以确保粘贴表 备份服务器已禁用持久性。
所以我的配置示例的最后一行简单地变成了:
server maintenance 127.0.0.1:8085 backup non-stick
......现在一切都按照我的预期运作了。