前言
在生产环境中,通常使用haproxy做tcp四层代理,例如:代理mysql服务器,rabbitmq集群等,起到负载均衡,失效转发的作用。一般情况下,为防止其他服务器恶意的访问,我们会希望指定的应用服务器可以连上haproxy,其他服务器的连接操作,一律拒绝;要达到这个效果,我们可以使用haproxy自带的白名单功能进行连接限定。
白名单配置
通过haproxy自带的tcp-request accept reject命令进行控制:listen rabbitmq-cluster
bind 0.0.0.0:5672
mode tcp
balance roundrobin
option tcpka
option redispatch
tcp-request content accept if { src -f /usr/local/haproxy-1.5.4/white_ip_list }
tcp-request content reject
server rabbitmq-node1 10.116.84.117:5673 check inter 3000 rise 3 fall 3 weight 1
server rabbitmq-node2 10.116.84.117:5674 check inter 3000 rise 3 fall 3 weight 1
其中white_ip_list为IP白名单配置文件(格式:一行一个IP或者IP段),示例:192.168.22.83
10.0.0.0/24