docker run -d --name haproxy -p 8888:8888 -p 13000:3306 -v e:/home/docker/haproxy:/usr/local/etc/haproxy haproxy:1.9.6
haproxy.cfg 配置文件
global
daemon
# nbproc 1
# pidfile /var/run/haproxy.pid
# 工作目录
chroot /usr/local/etc/haproxy
defaults
log 127.0.0.1 local0 err #[err warning info debug]
mode http #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK
retries 2 #两次连接失败就认为是服务器不可用,也可以通过后面设置
option redispatch #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
option abortonclose #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
option dontlognull #日志中不记录负载均衡的心跳检测记录
maxconn 4096 #默认的最大连接数
timeout connect 500000ms #连接超时
timeout client 300000ms #客户端超时
timeout server 300000ms #服务器超时
timeout check 200000 #=心跳检测超时
######## 监控界面配置 #################
listen admin_status
# 监控界面访问信息
bind 0.0.0.0:8888
mode http
# URI相对地址
stats uri /dbs
# 统计报告格式
stats realm Global\ statistics
# 登录账户信息
stats auth admin:123456
########frontend配置##############
######## mysql负载均衡配置 ###############
listen proxy-mysql
bind 0.0.0.0:3306
mode tcp
# 负载均衡算法
# static-rr 权重, leastconn 最少连接, source 请求IP, 轮询 roundrobin
balance roundrobin
# 日志格式
option tcplog
# 在 mysql 创建一个没有权限的haproxy用户,密码为空。 haproxy用户
# create user 'haproxy'@'%' identified by ''; FLUSH PRIVILEGES;
option mysql-check user haproxy
# 这里是容器中的IP地址,由于配置的是轮询roundrobin,weight 权重其实没有生效
server MYSQL_1 192.168.130.100:3306 check weight 1 maxconn 2000000
server MYSQL_2 192.168.130.101:3306 check weight 1 maxconn 2000000
#server MYSQL_3 192.168.130.102:3306 check weight 1 maxconn 2000
# 使用keepalive检测死链
# option tcpka
#########################################
创建用户
create user ‘haproxy’@’%’ identified by ‘’;
flush privileges;
访问
http://10.9.44.11:8888/dbs
https://blog.csdn.net/inthat/article/details/88928749?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5
docker run -itd --name haproxy -m 1024M -v /home/docker_haproxy/etc/haproxy:/etc/haproxy -v /home/docker_haproxy/var/lib/haproxy:/var/lib/haproxy -p 8082:80 -p 8443:443 docker.io/dockercloud/haproxy
docker run -d --name my-running-haproxy -p 8888:8888 -p 13000:3306 -v /home/docker/haproxy:/usr/local/etc/haproxy:ro haproxy:1.9.6