centos7编译安装haproxy

 

centos7编译安装haproxy

 

sudo yum install -y pcre-devel bzip2-devel gcc gcc-c++ make

useradd -s /sbin/nologin -M  haproxy    #--创建一个不可登录系统,且没有家目录的用户

cd /home/admin/soft

wget http://download.openpkg.org/components/cache/haproxy/haproxy-1.8.10.tar.gz

tar -zxf haproxy-1.8.10.tar.gz

cd haproxy-1.8.10

make TARGET=linux2628 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1

sudo make install PREFIX=/usr/local/haproxy

sudo cp haproxy  /usr/sbin/ 

sudo mkdir -p  /usr/local/haproxy/log

sudo touch  /usr/local/haproxy/log/haproxy.log

 

# # USE_PCRE=1 开启正则 USE_OPENSSL=1 开启openssl USE_ZLIB=1

# # USE_CPU_AFFINITY=1 为开启haproxy进程与CPU核心绑定,USE_SYSTEMD=1为支持使用 -Ws参数(systemd-aware master-worker 模式)启动Haproxy,从而实现单主进程多子进程运行模式。

 

准备system启动脚本

sudo cp examples/haproxy.init /etc/init.d/haproxy    
sudo chmod 755 /etc/init.d/haproxy           
sudo chkconfig --add haproxy
sudo cp contrib/systemd/haproxy.service.in /lib/systemd/system/haproxy.service

 

准备系统配置文件

# cat  /etc/sysconfig/haproxy
# Add extra options to the haproxy daemon here. This can be useful for
# specifying multiple configuration files with multiple -f options.
# See haproxy(1) for a complete list of options.
OPTIONS=""

 

配置各个负载的内核参数

# vim /etc/sysctl.conf
net.ipv4.ip_nonlocal_bind = 1 
#开启允许绑定非本机的IP,haporxy启动忽视VIP存在
net.ipv4.ip_forward = 1
#内核是否转发数据包
sudo sysctl  -p  
# 配置内核参数生效

 

配置文件

sudo mkdir /etc/haproxy
sudo mkdir /var/lib/haproxy
sudo mkdir /etc/haproxy/conf

 

# cat /etc/haproxy/haproxy.cfg
#--------------全局配置----------------
global
    log 127.0.0.1   local0  notice        #配置全局日志记录,local0为日志设备,notice为输出的日志级别,表示使用本地(127.0.0.1)机器上的rsyslog服务中的local0设备记录日志等级为notice的日志。
    #log loghost    local0 info #定义haproxy 日志级别
     maxconn 20480        #可以接收的最大并发连接数
 #chroot  /usr/local/haproxy-1.5.15     #工作目录
    pidfile  /var/run/haproxy.pid     #haproxy 进程PID文件
    #maxconn  4000         #最大连接数
    user   haproxy       #运行的程序用户
    group   haproxy   #运行的程序用户组
    daemon           #创建1个进程进入deamon模式运行,以后台形式运行harpoxy
#---------------------------------------------------------------------
#common defaults that all the 'listen' and 'backend' sections will
#use if not designated in their block
#---------------------------------------------------------------------
defaults
    mode   http       #所处理的类别,tcp是四层,http是七层,health只会返回OK,若是混合模式则mode不需要设置
    log    global        #定义日志,采用全局定义
    option  dontlognull    #不记录健康检查的日志信息
    option  httpclose     #每次请求完毕后主动关闭http通道
    option  httplog    #日志类别为http日志格式;如果是混合模式,此处还需要加上tcpclog
    #option  forwardfor    #后端服务器可以从Http Header中获得客户端ip
    option  redispatch     #serverId对应的服务器挂掉后,强制定向到其他健康的服务器
    balance roundrobin    #设置默认负载均衡方式,轮询方式
    timeout connect 10s  #连接超时
    timeout client 10s   #客户端连接超时
    timeout server 10s   #服务器连接超时
    timeout check 10s    #健康检测的超时时间
    maxconn     60000    #最大连接数
    retries     3        #3次连接失败就为服务不可用
#--------------统计页面配置------------------
listen admin_stats       #为haproxy访问状态监控页面配置,取名为admin_stats
    bind 0.0.0.0:8189      #监听端口
    stats enable         #启用监听端口
    mode http         #http的7层模式
    log global         # 继承global中log的定义
    stats uri  /stats     #监控页面的url访问路径,即http://ip/stats访问监控页面
    stats realm Haproxy\ Statistics     #监控页面的密码框提示信息
    stats auth  admin:admin          #监控页面的用户和密码admin,可以设置多个用户名
    #stats hide-version   #隐藏统计页面上HAProxy的版本信息
    stats admin if TRUE    #当通过认证才可管理
    stats refresh 30s    #页面自动刷新时间30s
#---------------web设置-----------------------
listen webcluster     #定义webcluster服务器组。
        bind 0.0.0.0:81   #定义haproxy前端部分监听的端口。
        mode http    #http的7模式
        #option httpchk GET /index.html     #心跳检测7层访问
        log global    #继承global中log的定义
        maxconn 3000   #server进程可接受的最大并发连接数
        balance roundrobin    #负载均衡的方式:轮询
        cookie SESSION_COOKIE insert indirect nocache #根据cookie轮询
       server web01 10.6.76.27:1988 check inter 2000 fall 5
       server web02 10.6.76.28:1988 check inter 2000 fall 5
      #server web01 192.168.80.102:80 cookie web01 check inter 2000 fall 5
      #server web02 192.168.80.103:80 cookie web01 check inter 2000 fall 5
      # https://www.cnblogs.com/yangliheng/p/5852494.html

 

启动

 

测试

 

haproxy分发成功了

 

 

posted on 2019-07-16 17:58  光阴8023  阅读(1941)  评论(0编辑  收藏  举报