`
varsoft
  • 浏览: 2452348 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

[转] 初尝利用HAProxy实现负载均衡

阅读更多
一,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



CODE:

--------------------------------------------------------------------------------------------------------------------

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 5syslog.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 ,输入用户名密码查看状态。

   



harproxy.jpg

后端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___FCKpd___0quot; 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://haproxy.1wt.eu/download/1.3/doc/haproxy-en.txt

  http://www.howtoforge.com/high-availability-load-balancer-haproxy-heartbeat-debian-etch
Add:
News, March 30th, 2008

I finally assembled my new machines and installed the donated 10-Gig Myricom NICs. I ran a few benchmarks. Result: new bandwidth records set for HAPoxy: 9.897 Gbps and 35128 hits/s! It's possibly the highest bitrate achieved to date with an opensource load-balancer! BTW, even most commercial ones are commonly limited to 4 Gbps by hardware design. What's a bit frustrating for a precision-tweaker like me is that those NICs work out-of-the box on dirt cheap hardware, there's almost no joy passing beyond the first 4 Gbps :-)

作者Willy TARREAU是linux 内核的2.4主要维护者之一。

具体的请看:
http://haproxy.1wt.eu/10g.html
文章来源:http://bbs.linuxpk.com/archiver/tid-13193.html
顺便抱怨一下:CSDN的编辑器不知道怎么回事,总是会丢失格式乱成一团,最后只好贴成代码才没丢失,唉,大家凑合看。



  


  
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics