HAProxy 负载均衡


转载时请务必以超链接形式标明文章 原始出处和作者信息及本版权声明
链接:http://www.dbasky.net/archives/2009/07/haproxy.html
      最近公司的某个业务发展速度之快,导致前端服务器的压力非常的大.为了能够尽快的解决此问题,向公司提交个采购服务器的要求,很快公司也批了,服务器也到位了.现在的问题怎么合理的利用新采购服务器的资源呢(原来就一台前端服务器),第一就想到用nginx来做负载均衡,大家都知道nginx好是好,但是session没办法同步,是否没有办法了?办法是有的,可以利用HAProxy 来祢补nginx的不足的地方.

    
haproxy-diagram.png

一:安装 HAProxy

 
[root@xutest src]cd /usr/local/ 
[root@xutest src]wget http://www.dbasky.net/tool/haproxy-1.3.15.7.tar.gz  
[root@xutest src]tar -zxvf haproxy-1.3.15.7.tar.gz  
[root@xutest src]cd haproxy-1.3.15.7  
[root@xutest src]make TARGET=linux26 USE_STATIC_PCRE=1 
[root@xutest src]make install PREFIX=/home  

二:配置

1)新建haproxy 用户组和用户:

[root@xutest src]groupadd haproxy
[root@xutest src]useradd haproxy -g haproxy

2)查看用户ID:

[root@xutest src]vi /etc/passwd
haproxy:x:500:500::/home/haproxy:/bin/bash

3)新建HAProxy目录:

[root@xutest opt]#mkdir /opt/haproxy
[root@xutest opt]#touch /opt/haproxy/haproxy.cfg

4)配置haproxy.cfg

[root@xutest opt]#vi /opt/haproxy/haproxy.cfg
global
        log 127.0.0.1   local0
        maxconn 4096
        chroot /opt/haproxy
        uid 500
        gid 500
        daemon
        nbproc 1
        #pidfile /home/haproxy/logs/haproxy.pid
        #debug
        #quiet

defaults
        log     127.0.0.1       local3
        mode    http
        option  httplog
        option  httpclose
        option  dontlognull
        option  forwardfor
        option  redispatch
        retries 2
        maxconn 2000
        balance roundrobin
        stats   uri     /haproxy-stats
        contimeout      5000
        clitimeout      50000
        srvtimeout      50000

listen  web_proxy 0.0.0.0:8888
        option  httpchk

        server  web1 192.168.1.250:8080 weight 3 check
        server  web2 192.168.1.238:8080 weight 3 check


三:启动HAProxy主进程:

[root@xutest haproxy]# /usr/local/sbin/haproxy -f /opt/haproxy/haproxy.cfg

 停止HAProxy:

[root@xutest haproxy]# ps aux|grep haproxy
[root@xutest haproxy]# kill -9 + 进程ID

到此HAProxy配置完,我们可以通过浏览器查看:http://192.168.1.6:8888/haproxy-stats/

haproxy-2.jpg

 

评论(1)

今天终于找到这个架构的出处了。您把nginx放到前面做负载均衡为什么不把haproxy放到前面做负载均衡?这样不是就可以省了一层转发?这样架构是为了用nginx的负载均衡缓冲区?还是haproxy有些地方不适合?还有一个问题nginx负载均衡泛解析域名如*.ch.dbasky.net只能通过ch.dbasky.net/*再rewrite成*.ch.dbasky.net这样。haproxy可以通过acl url_sub -i 直接转发。
期盼答案。

发表评论

个人介绍

Xu
Evangelist
Oracle DBA / Blogger
Life@Beijing
Work@恩世教育
详细介绍...

按月归档

Close