0%

Haproxy安装使用

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 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