您的位置:首页 > 其它

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

2011-03-22 09:11 911 查看
一,什么是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

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负载均衡

配置说明:

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


如果修改 haproxy.cfg 配置,想重启 haproxy 用 kill -HUP `cat logs/haproxy.pid` 是不行的。必须使用 -sf 或 -st 参数,如:
sbin/haproxy -f haproxy.cfg -st `cat logs/haproxy.pid `
#./haproxy –help //haproxy相关命令参数介绍.
haproxy -f <配置文件> [-n 最大并发连接总数] [-N 每个侦听的最大并发数] [-d] [-D] [-q] [-V] [-c] [-p] [-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里的进程发送FINISH信号,这个参数放在命令行的最后
-st 程序启动后向pidlist里的进程发送TERMINATE信号,这个参数放在命令行的最后
但配置后,死活不会输出日志,还没找到解决方法,网上有些,但行不通:
syslog.conf里加一行
local3.* /var/log/haproxy.log
# killall -HUP syslogd 重启 syslogd
# touch /var/log/haproxy.log
# chmod 777 /var/log/haproxy.log
# tail –f /var/log/harpoxy.log 监控日志
# ./haproxy -f haproxy.cfg 启动服务.

最终使用下列解决了日志问题

vi /etc/sysconfig/syslog

把SYSLOGD_OPTIONS="-m 0" 改成 SYSLOGD_OPTIONS="-r -m 0"

让syslogd接受远程的日志输出

/etc/init.d/syslog restart

然后就可以看到日志输出了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: