现在的位置: 首页 > 综合 > 正文

Web高并发访问:用HAPorxy实现负载均衡

2017年12月27日 ⁄ 综合 ⁄ 共 2778字 ⁄ 字号 评论关闭

 HAProxy是一款反向代理服务器工具,通过它,可以实现负载均衡。它支持双机热备支持虚拟主机,但其配置简单,拥有非常不错的服务器健康检查功能,当其代理的后端服务器出现故障,
HAProxy会自动将该服务器摘除,故障恢复后再自动将该服务器加入。新的1.3引入了frontend,backend,frontend根据任意HTTP请求头内容做规则匹配,然后把请求定向到相关的backend.

    利用HAPorxy实现负载均衡

    1. 利用HAProxy实现负载均衡
    192.168.169.137 (haproxy)———负载均衡———-(192.168.169.117;192.168.169.118)
    安装配置HAproxy
    cd /usr/local/
    wget http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.14.2.tar.gz
    tar zxvf haproxy-1.3.14.2.tar.gz
    mv   haproxy-1.3.14.2   haproxy
    cd haproxy
    make TARGET=linux26

    2. 创建配置文件
    # vi haproxy.cfg
    global
           maxconn 5120
           chroot /usr/local/haproxy
           uid 99
           gid 99
           daemon
       quiet
           nbproc   2   #通过nbproc多设置几个haproxy并发进程,这样每个进程的task_queue相对就会短很多,性能自然就能提高不少
           #pidfile /var/run/haproxy-private.pid

    defaults
           log     global
           mode http
           option   httplog
           option   dontlognull
           log 127.0.0.1 local3
           retries 3
           option redispatch
           maxconn 2000
           contimeout    5000
           clitimeout    50000
           srvtimeout    50000

    listen webfarm 0.0.0.0:80
       mode http
       stats uri /haproxy-stats     #监控haproxy状态
       stats realm Haproxy\ statistics
       stats auth netseek:52netseek   #设置状态监控的用户名为netseek密码为52netseek
       balance roundrobin     #负载均衡算法
       cookie SERVERID insert indirect
       option httpclose #
       option forwardfor   #apache日志转发功能
       option httpchk HEAD /check.txt HTTP/1.0   #健康检测
    server app_bbs1 192.168.169.117:80 cookie app1inst1 check inter 2000 rise 2 fall 5
    server app_bbs2 192.168.169.118:80 cookie app1inst2 check inter 2000 rise 2 fall 5

    syslog.conf里加一行
    local3.*       /var/log/haproxy.log

    # touch /var/log/haproxy.log
    # chown haproxy:haproxy /var/log/haproxy.log
    # chmod u+x /var/log/haproxy.log

    # tail –f /var/log/harpoxy.log 监控日志

    # ./haproxy -f haproxy.cfg 启动服务.
    监控状态图示http://192.168.169.137/haproxy-stats ,输入用户名密码查看状态。

    后端apache日志处理
    配置httpd.conf
    LogFormat “%{X-Forwarded-For}i %l %u %t \”%r\” %>s %b ” combined
           CustomLog /var/log/httpd/access_log combined

    虚拟主机不记录检测日志:
    SetEnvIf Request_URI “^/check\.txt$” dontlog
    LogLevel warn
    ErrorLog /var/log/httpd/vhost_error.log
    CustomLog /var/log/httpd/vhost_access.log combined env=!dontlog
    相关介绍
    #./haproxy –help //haproxy相关命令参数介绍.
    haproxy   -f   <配置文件>   [-n 最大并发连接总数] [-N 每个侦听的最大并发数] [-d] [-D] [-q] [-V] [-c] [-p <pid文件>] [-s] [-l] [-dk]
       [-ds] [-de] [-dp] [-db] [-m <内存限制M>] [{-sf|-st} pidlist...]
       -d     前台,debug模式
       -D     daemon模式启动
       -q     安静模式,不输出信息
       -V     详细模式
       -c     对配置文件进行语法检查
       -s     显示统计数据
       -l     显示详细统计数据
       -dk 不使用kqueue
       -ds 不使用speculative epoll
       -de 不使用epoll
       -dp 不使用poll
       -db 禁用后台模式,程序跑在前台
       -sf <pidlist>
       程序启动后向pidlist里的进程发送FINISH信号,这个参数放在命令行的最后
       -st <pidlist>
       程序启动后向pidlist里的进程发送TERMINATE信号,这个参数放在命令行的最后

原文链接: http://linux.chinaitlab.com/serv...

抱歉!评论已关闭.