美文网首页
Haproxy配置

Haproxy配置

作者: N33_LvQing | 来源:发表于2018-12-08 18:34 被阅读0次

    Haproxy可以做代理服务相对于nginx而言有很多相同之处,统一可以基于mode tcp进行四层代理也可以基于mode http进行七层代理,但不同的是其无法使用location和if等进行匹配判断。突出优势在于有web管理界面,状态统计非常详细。官方推荐只启用一个进程,相对于nginx多核架构工作并不理想。
    程序环境:
    主程序:/usr/sbin/haproxy
    主配置文件:/etc/haproxy/haproxy.cfg
    Unit file:/usr/lib/systemd/system/haproxy.service

        配置段:
            global:全局配置段
                进程及安全配置相关的参数
                性能调整相关参数
                Debug参数
            proxies:代理配置段
                defaults:为frontend, listen, backend提供默认配置;
                frontend:前端,相当于nginx, server {}
                backend:后端,相当于nginx, upstream {}
                listen:同时拥前端和后端
    

    查看配置文件

    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
        #
        #    local2.*                       /var/log/haproxy.log
        #
        log         127.0.0.1 local2
    
        chroot      /var/lib/haproxy
        pidfile     /var/run/haproxy.pid
        maxconn     4000
        user        haproxy
        group       haproxy
        daemon
    
        # turn on stats unix socket
        stats socket /var/lib/haproxy/stats
    

    重要的几个参数,及性能调优,多数无需修改

        log:定义全局的syslog服务器;最多可以定义两个;
        log <address> [len <length>] <facility> [max level [min level]]
        nbproc <number>:要启动的haproxy的进程数量;
        ulimit-n <number>:每个haproxy进程可打开的最大文件数;
        maxconn <number>:设定每个haproxy进程所能接受的最大并发连接数;
             最大的并发连接数=nbproc * maxconn
        maxconnrate <number>:每个进程每秒种所能创建的最大连接数量;
        maxcomprate :压缩创建的速率
        maxsessrate <number>:进程每秒能创建的会话数量
        maxsslconn <number>:每个进程所能接受的ssl连接数
        spread-checks <0..50, in percent>:散开监控状态检测
    

    发现日志发送给本机rsyslog的local2的facility,而本机的rsyslog里并没有定义,需要我们自己去配置
    所以vim /etc/rsyslog.conf添加一段将local2的所有信息记录在对应日志文件中

    # Provides UDP syslog reception
    $ModLoad imudp
    $UDPServerRun 514
    local2.*              /var/log/haproxy.log
    

    接下来我们在haproxy的配置文件中添加我们自定义的frontend和backend

    frontend myweb #haproxy内部标识
            bind *:80  #监听80端口
            default_backend webservs #转发给后端webservs
    
    backend webservs
            balance roundrobin
            server serv1 192.168.31.201:80 check #检测健康状态
            server serv1 192.168.31.203:80 check 
    

    然后我们访问haproxy服务器的地址,就可以轮询负载均衡了

    root@lvqing:~# for i in {1..10};do curl http://192.168.31.200;done
    <h1> backend serv1 </h1>
    <h1>backend serv2</h1>
    <h1> backend serv1 </h1>
    <h1>backend serv2</h1>
    <h1> backend serv1 </h1>
    <h1>backend serv2</h1>
    <h1> backend serv1 </h1>
    <h1>backend serv2</h1>
    <h1> backend serv1 </h1>
    <h1>backend serv2</h1>
    

    相关文章

      网友评论

          本文标题:Haproxy配置

          本文链接:https://www.haomeiwen.com/subject/gdxocqtx.html