- yum安装
yum update
yum install haproxy
- 修改haproxy配置文件,默认目录:/etc/haproxy/haproxy.cfg,下面是一些参考配置
#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global #全局配置文件
log 127.0.0.1 local2 #日志配置,所有的日志都记录本地,通过local2输出
maxconn 20000
ulimit-n 16384
#chroot /var/lib/haproxy #改变haproxy的工作目录
#pidfile /var/run/haproxy.pid #指定pid文件的路径
maxconn 4000 #最大连接数的设定
#user haproxy #指定运行服务的用户
#group haproxy #指定运行服务的用户组
daemon
#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
mode http #默认使用协议,可以为{http|tcp|health} http:是七层协议 tcp:是四层 health:只返回OK
log global #全局日志记录
option httplog #详细记录http日志
option dontlognull #不记录空日志
option http-server-close #启用http-server-close
option forwardfor except 127.0.0.0/8 #来自这些信息的都不forwardfor
option redispatch #重新分发,ServerID对应的服务器宕机后,强制定向到其他运行正常的服务器
retries 3 #3次连接失败则认为服务不可用
timeout http-request 10s #默认http请求超时时间
timeout queue 1m #默认队列超时时间
timeout connect 10s #默认连接超时时间
timeout client 1m #默认客户端超时时间
timeout server 1m #默认服务器超时时间
timeout http-keep-alive 10s #默认持久连接超时时间
timeout check 10s #默认检查时间间隔
maxconn 3000 #最大连接数
######## 监控界面配置 #################
listen admin_status
# 监控界面访问信息
bind 0.0.0.0:8888
mode http
#自动刷新时间
stats refresh 30s
# URI相对地址
stats uri /
# 统计报告格式
# stats realm Global\ statistics
stats realm welcome login\ Haproxy
# 登录账户信息
stats auth admin:123456
#用来隐藏统计页面上HAProxy 的版本信息
stats hide-version
#通过设置此选项,可以在监控页面上手工启用或禁用后端真实服务器
stats admin if TRUE
########frontend配置##############
######## mysql负载均衡配置 ###############
listen 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.41.129:3306 check weight 1 maxconn 2000
server mysql_2 192.168.41.130:3306 check weight 1 maxconn 2000
server mysql_3 192.168.41.131:3306 check weight 1 maxconn 2000
# 使用keepalive检测死链
# option tcpka
#########################################
########test1配置#################
# listen test1
# bind 0.0.0.0:8008
# mode tcp
# balance roundrobin
# server s1 127.0.0.1:8010 weight 1 maxconn 10000 check inter 10s
# server s2 127.0.0.1:8011 weight 1 maxconn 10000 check inter 10s
# server s3 127.0.0.1:8012 weight 1 maxconn 10000 check inter 10s
########test2配置#################
# listen test2
# bind 0.0.0.0:8007
# mode tcp
# balance roundrobin
# server s1 192.168.1.88:8010 weight 1 maxconn 10000 check inter 10s
- 修改ulimit配置,haproxy要求ulimit大于(maxconn*2 + 15 )
ulimit -n 查看当前配置大小,默认1024
#临时修改
ulimit -n 65536
#永久修改,需要修改/etc/security/limits.conf配置文件,文末增加以下内容,然后重新登录就可以生效
* soft nofile 65536
* hard nofile 65536
* soft nproc 65565
* hard nproc 65565
- 启动服务并配置自启动,启动后访问8888端口,使用admin/123456登录就可以看到UI界面了。
systemctl start haproxy
systemctl enable haproxy