zoukankan      html  css  js  c++  java
  • haproxy1.7编译安装配置

    #haproxy1.7编译安装配置
    #高可用、负载均衡 使用

    #haproxy1.7编译安装配置
    #centos7 x86_64
    #高可用、负载均衡 使用
    
    #下载
    #http://www.haproxy.org/download/1.7/src/haproxy-1.7.8.tar.gz
    #cd /data/nfs/download
    #yum install gcc gcc-c++ autoconf automake -y
    
    #安装haproxy
    Hadir=/www/server/haproxy #安装目录
    mkdir -p $Hadir
    tar -axf haproxy-* && cd ./haproxy-*
    make TARGET=linux2628 ARCH=x86_64 PREFIX=$Hadir
    make install PREFIX=$Hadir
    $Hadir/sbin/haproxy -v
    
    #增加用户
    useradd -s /sbin/nologin -M haproxy
    id haproxy
    
    #内核优化
    # #NAT转发
    # sed -i 's@net.ipv4.ip_forward = 0@net.ipv4.ip_forward = 1@g' /etc/sysctl.conf
    # grep ip_forward /etc/sysctl.conf
    echo "net.ipv4.ip_nonlocal_bind = 1" >>/etc/sysctl.conf #允许没监听IP时启动
    sysctl -p
    
    #启动脚本配置
    cp ./examples/haproxy.init $Hadir/haproxy
    chmod 755 $Hadir/haproxy
    sed -i '/^BIN=/cBIN='$Hadir'/sbin/$BASENAME' $Hadir/haproxy
    sed -i '/^CFG=/cCFG='$Hadir'/$BASENAME.cfg' $Hadir/haproxy
    
    #日志配置
    sed -i 's/^#$ModLoad imudp/$ModLoad imudp/g' /etc/rsyslog.conf
    sed -i 's/^#$UDPServerRun 514/$UDPServerRun 514/g' /etc/rsyslog.conf
    echo 'local0.* /var/log/haproxy.log'>>/etc/rsyslog.conf #添加haproxy日志路径
    systemctl restart rsyslog
    
    
    #生成配置文件
    echo "
    
    ###########全局配置#########
        global
        log 127.0.0.1 local0
        log 127.0.0.1 local1 notice
        daemon
        #nbproc 1     #进程数量 
        maxconn 4096  #最大连接数 
        user haproxy  #运行用户  
        group haproxy #运行组 
        chroot /var/lib/haproxy
        pidfile /var/run/haproxy.pid
    ########默认配置############
        defaults
        log global
        mode http            #默认模式{ tcp|http|health }
        option httplog       #日志类别,采用httplog
        option dontlognull   #不记录健康检查日志信息  
        retries 2            #2次连接失败不可用
        option forwardfor    #后端服务获得真实ip
        option httpclose     #请求完毕后主动关闭http通道
        option abortonclose  #服务器负载很高,自动结束比较久的链接  
        maxconn 4096         #最大连接数  
        timeout connect 5m   #连接超时  
        timeout client 1m    #客户端超时  
        timeout server 31m   #服务器超时  
        timeout check 10s    #心跳检测超时  
        balance roundrobin   #负载均衡方式,轮询 
    ########统计页面配置########
        listen stats  
        bind 0.0.0.0:1080 
        mode http
        option httplog
        log 127.0.0.1 local0 err 
        stats refresh 30s
        maxconn 10               #最大连接数  
        stats uri /admin         #状态页面 http//ip:1080/admin访问  
        stats realm Haproxy Statistics
        stats auth admin:admin   #用户和密码:admin
        stats hide-version       #隐藏版本信息  
        stats admin if TRUE      #设置手工启动/禁用
      
    ########设置haproxy 错误页面#####  
        #errorfile 403 /opt/haproxy/errorfiles/403.http  
        #errorfile 500 /opt/haproxy/errorfiles/500.http  
        #errorfile 502 /opt/haproxy/errorfiles/502.http
        errorloc 503 https://www.baidu.com/
        #errorfile 504 /opt/errorfiles/504.http  
      
    ########frontend前端配置##############  
        frontend http_main
        bind *:80
        option forwardfor
        acl web hdr(host) -i elven.win  #acl规则,-i忽略大小写,访问*就触发web规则
        use_backend web1 if web
        
        acl web_kvm path_beg -i /kvm
        use_backend kvm if web_kvm
            
        default_backend web1 #不满足则响应的默认页面  
    
    ########backend后端配置##############  
        backend web1 #www1作用域  service haproxy restart
        cookie   SERVERID
        balance roundrobin
        option httpchk HEAD /index.html HTTP/1.0
        server web1 192.168.20.81:80 weight 1 check inter 2000 rise 2 fall 3  
        server web2 192.168.18.12:80 weight 1 check inter 2000 rise 2 fall 3  
        
        backend kvm
        server kvm1 127.0.0.1:8000
        
    ">$Hadir/haproxy.cfg
    chown -R haproxy:haproxy $Hadir/
    
    #启动
    /www/server/haproxy/haproxy start
    netstat -antp|grep haproxy
    ps -ef|grep haproxy
    
    #添加自启动
    ln -sf /www/server/haproxy/haproxy /etc/init.d/haproxy
    chkconfig --add haproxy
    chkconfig haproxy on
    chkconfig --list haproxy
    service haproxy restart
    
    #查看监控
    http://ip:1080/admin
    #cat /var/log/haproxy.log
    
    ##启动报错 第 26 行:[: =: 期待一元表达式,[]里的变量用加上引号“”
    #修改为如下:
     [ "${NETWORKING}" = "no" ] && exit 0
  • 相关阅读:
    Python异常处理
    Python中的变量作用域,LEGB规则和闭包原理
    Flask实现RESTful API
    Django中自定义实现RESTful API
    Python中的单例模式
    Flask中实现分页
    面向对象进阶
    Flask部分三方模块的使用
    面向对象基础
    在visual studio中设置点击左边选项卡中的类文件,右侧解决方案跳到对应的文件
  • 原文地址:https://www.cnblogs.com/elvi/p/7717582.html
Copyright © 2011-2022 走看看