负载均衡工具haproxy安装,配置,使用

张映 发表于 2010-06-19

分类目录: 服务器相关

标签:, , , ,

一,什么是haproxy

HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代 理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。

二,安装haproxy

下载列表地址http://haproxy.1wt.eu

wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.8.tar.gz

tar zxvf haproxy-1.4.8.tar.gz
cd haproxy-1.4.8
uname -a           //查看linux内核版本
make TARGET=linux26 PREFIX=/usr/local/haproxy
make install PREFIX=/usr/local/haproxy

三,配置haproxy

vi /usr/local/haproxy/haproxy.cfg

global
        maxconn 5120
        chroot /usr/local/haproxy
        uid 99
        gid 99
        daemon
        quiet
        nbproc  2
        pidfile /usr/local/haproxy/haproxy.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 webinfo :1080
       mode http
       balance roundrobin
       option httpclose
       option forwardfor
server phpinfo1 192.168.18.2:10000 check weight 1 minconn 1 maxconn 3 check inter 40000
server phpinfo2 127.0.0.1:80 check weight 1 minconn 1 maxconn 3 check inter 40000

listen webmb :1081
       mode http
       balance roundrobin
       option httpclose
       option forwardfor
server webmb1 192.168.1.91:10000 weight 1 minconn 1 maxconn 3 check inter 40000
server webmb2 127.0.0.1:10000 weight 1 minconn 1 maxconn 3 check inter 40000

 listen stats :8888
       mode http
       transparent
       stats uri / haproxy-stats
       stats realm Haproxy \ statistic
       stats auth zhangy:xtajmd

三,启动haproxy

#启动haproxy
/usr/local/haproxy/haproxy -f /usr/local/haproxy/haproxy.cfg

#查看是否启动
[zhangy@BlackGhost haproxy]$ ps -e|grep haproxy
4859 ?        00:00:00 haproxy
4860 ?        00:00:00 haproxy

四,压力测试

[root@BlackGhost haproxy]# /usr/local/bin/webbench -c 100 -t 30 http://localhost:1080/phpinfo.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://localhost:1080/phpinfo.php
100 clients, running 30 sec.

Speed=26508 pages/min, 20929384 bytes/sec.
Requests: 13254 susceed, 0 failed.

说明:haproxy监听的端口是1080,代理192.168.18.2:10000,127.0.0.1:10000

统计监听的是8888端口 http://localhost:8888/haproxy-stats

haproxy负载均衡

haproxy负载均衡

配置说明:

1.4系列参考配置文件

http://haproxy.1wt.eu/download/1.4/doc/configuration.txt

1.3系列参考配置文件

http://haproxy.1wt.eu/download/1.3/doc/configuration.txt



转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/server/868.html

8 条评论

  1. kimi 留言

    haproxy的配置文件注释太少,初学者不明白每行参数代表的意义是什么,可以参考http://www.budichina.com/yunwei/194,非常详尽。

  2. 张映 留言

    安装,配置和使用,都是要自己亲自去操作的,光看没用的。

  3. kevin 留言

    請問有方法可以判斷流量或是連線資訊嗎
    我看了她整個config說明檔
    但是似乎沒針對流量判斷的依據
    我想達到的功能是前端的HA接受連線時可以判斷目前的流量資訊
    當流量到某個程度時我會在開啟一台SERVER去分擔流量
    另外這就會有另一個問題
    就是重啟HA服務時原本SERVER的流量會平均分攤到新的那邊去嗎
    謝謝回答

  4. 张映 留言

    关于有没有根据流量大小进行分发请求的方式,请参考:http://haproxy.1wt.eu/download/1.4/doc/configuration.txt。个人觉得,当一个请求到负载均衡服务器后,负载均衡服务器,会根据一定的算法,决定这个请求分配到哪个服务器上。个人觉得根据请求数,来分配的是最多,流量根请求数成正比的,但是也不是绝对的,比如,如果我访问了一张大图片产生的流量,可能是请求一般页面产生流量的好几倍。haproxy可以配置各个服务器的权重,多个服务器的硬件,可能不一样,这个时候,我们可以通过weight来设置服务器权重。

  5. 张映 留言

    如果我没有记错的话,apache的负载均衡模块,可以根据流量来进行负载均衡。

  6. test 留言

    请问下日志能否正常记录?

  7. 张映 留言

    当然可以

  8. yong 留言

    请问haproxy-status是自动产生的吗,什么时候产生的,我按你的步骤做了,怎么没有haproxy-status呢?