• HAProxy基于Centos6.5安装及配置


    一、使用2.6内核Linux,配置sysctl参数

    vi /etc/sysctl.conf

    #haproxy config
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.ip_local_port_range = 1024 65000
    net.ipv4.tcp_max_syn_backlog = 10240
    net.ipv4.tcp_max_tw_buckets = 400000
    net.ipv4.tcp_max_orphans = 60000
    net.ipv4.tcp_synack_retries = 3
    net.core.somaxconn = 10000

    net.ipv4.ip_nonlocal_bind = 1    #解决备节点bind vip报错问题

    sysctl -p      #sysctl参数立即生效

    二、查看yum源版本

    yum list | grep haproxy

    三、yum源安装

    yum install haproxy -y

    安装时haproxy用户及用户组系统会自动创建

    四、配置haproxy

    vi /etc/haproxy/haproxy.cfg 

    #---------------------------------------------------------------------
    # Global settings
    #---------------------------------------------------------------------
    global
        # to have these messages end up in /var/log/haproxy.log you will
        # need to:
        #
        # 1) configure syslog to accept network log events.  This is done
        #    by adding the '-r' option to the SYSLOGD_OPTIONS in
        #    /etc/sysconfig/syslog
        #
        # 2) configure local2 events to go to the /var/log/haproxy.log
        #   file. A line like the following can be added to
        #   /etc/sysconfig/syslog
        #
        #
        #nbproc      8                              #启动进程数
        log         127.0.0.1 local0 info
        log         127.0.0.1 local1 warning
        chroot      /var/lib/haproxy                #安全参数,出现bug保护
        pidfile     /var/run/haproxy.pid            #进程号文件路径
        maxconn     3000
        user        haproxy
        group       haproxy
        daemon                                      #守护进程的方式运行
    
        # turn on stats unix socket
        stats socket /var/lib/haproxy/stats
    
    #---------------------------------------------------------------------
    # common defaults that all the 'listen' and 'backend' sections will
    # use if not designated in their block
    #---------------------------------------------------------------------
    defaults
        mode                    http
        log                     global
        option                  httplog
        option                  dontlognull
        option                  http-server-close
        option  forwardfor      except 127.0.0.0/8
        option                  redispatch
        retries                 3
        timeout http-request    10s
        timeout queue           1m
        timeout connect         5s
        timeout client          50s
        timeout server          50s
        timeout http-keep-alive 10s
        timeout check           10s
        maxconn                 3000
    
    #---------------------------------------------------------------------
    # main frontend which proxys to the backends
    #---------------------------------------------------------------------
    frontend  main *:5000
        acl url_static       path_beg       -i /static /images /javascript /stylesheets
        acl url_static       path_end       -i .jpg .gif .png .css .js
    
        use_backend static   if             url_static
        default_backend      kdapp
    
    frontend kdapp
        bind 192.168.0.206:80
        maxconn 3000
        default_backend kdapp
    
    frontend blapp
        bind 192.168.0.206:8080
        maxconn 300
    #    acl valid_ip src 172.17.188.0/24
    #    block if !valid_ip
        default_backend blapp
    #    acl lbprint_dom path_beg -i /lbprint/
    #    acl tmp_dom hdr(host) -i www.4pinfo.com    #tmp_dom名称,hdr(host)主机名,i不区分大小写
    #    use_backend lbprint if lbprint_dom
    #    default_backend    k3cloud
    
    #---------------------------------------------------------------------
    # static backend for serving up images, stylesheets and such
    #---------------------------------------------------------------------
    backend static
        balance     roundrobin
        server      static          192.168.0.72:80
    
    #---------------------------------------------------------------------
    # round robin balancing between the various backends
    #---------------------------------------------------------------------
    backend kdapp
        balance  roundrobin                 #轮询模式
        mode     http
        option   httpclose
        option   forwardfor
    #    option   httpchk HEAD /check.html HTTP/1.0
    #    option   httpchk GET /check.html
        option   allbackups
        cookie   SERVERID insert indirect
        timeout  server 50s
        timeout  connect 15s
        server   kd70 192.168.0.70:80 cookie kd70 maxconn 3000 check inter 2000 fall 3
        server   kd71 192.168.0.71:80 cookie kd71 maxconn 3000 check inter 2000 fall 3
        server   kd73 192.168.0.73:80 cookie kd73 maxconn 3000 check inter 2000 fall 3 backup
    #    server   web01 192.168.0.70:80 check port 80 inter 5000 fall 5
    #    server   web02 192.168.0.72:80 check port 80 inter 5000 fall 5
    
    backend blapp
        balance  roundrobin
        mode     http
        option   httpclose
        option   forwardfor
        cookie   SERVERID insert indirect
        timeout  server 50s
        timeout  connect 15s
        server   port81 192.168.0.61:81 cookie port81 maxconn 300 check port 81 weight 5 inter 2000 fall 3
        server   port82 192.168.0.61:82 cookie port82 maxconn 300 check port 82 weight 5 inter 2000 fall 3
    
    listen stats
        bind 192.168.0.206:1080
        stats enable
        stats refresh 30s
        stats hide-version
        stats uri /stats
        stats realm HAProxy Stats
        stats auth admin:admin

    五、配置rsyslog

    1.为rsyslog添加haproxy日志的配置

    vi /etc/rsyslog.d/haproxy.conf

    local0.* /var/log/haproxy_info.log
    local1.* /var/log/haproxy_warn.log

    2.修改rsyslog的启动参数,主要目的兼容RHCL5版本

    vi /etc/sysconfig/rsyslog

    #SYSLOGD_OPTIONS="-c 5"
    SYSLOGD_OPTIONS="-c 2 -r -m 0"

    3.启动rsyslog,查看端口监听

    service rsyslog start

    netstat -lntup

    rsyslog为UDP的514端口,如果没有端口监听需要修改rsyslog配置,取消配置注释并重启rsyslog

    vi /etc/rsyslog.conf

    # Provides UDP syslog reception
    $ModLoad imudp
    $UDPServerRun 514

    六、启动HAProxy

    service haproxy start

     

    如果启动不了查日志,根据报错寻找解决办法。生成环境不建议开启info日志,日志记录信息过多比较占空间。

    rsyslog不会自动切分,可以使用linux系统自带logrotate进行切分,网上很多文章,此处不累述。

    到此配置就完成了,后续只需要优化参数及通过Keepalive或Heartbeat实现高可用。

  • 相关阅读:
    关于SpringBoot的外部化配置使用记录
    深入理解Mybatis插件
    MySQL JDBC Driver 8.0+设置服务器时区
    重新认识Java注解
    深入理解Java枚举
    Spring cloud系列教程第十篇- Spring cloud整合Eureka总结篇
    Spring Cloud系列教程第九篇-Eureka自我保护机制
    安装vsftp服务器的时候遇到的问题
    spring cloud系列教程第八篇-修改服务名称及获取注册中心注册者的信息
    idea 启动命令行的时候提示不能创建PTY
  • 原文地址:https://www.cnblogs.com/sonnyBag/p/11395256.html
Copyright © 2020-2023  润新知