HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点, 这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
该版本修正了配置中由于没指定 server id 时导致联系哈希算法出错的问题;修正了分发器和 http_proxy 模块的bug,日志中一些终结符号的问题等等,建议升级。
下载
http://haproxy.1wt.eu/download/1.4/src/
目录
一 应用背景
二 应用环境
三 安装配置
四 FAQ
一 应用背景
[我的Linux,让Linux更易用:http://www.wdlinux.cn:QQ 12571192]随着互联网应用的普及以及人们对互联网的要求也越来越高,在流量增加的同时,要求速度快,在线时间长或出故障的时间短或故障后能及时恢复等等。为了解决这些问题,各种负载均衡及集群技术应运而生
其中,LVS便是一个解决大流量分流很好的解决方案
详细请参考 http://www.linuxvirtualserver.org/zh/lvs1.html
HA(High Availability),则是高可用的意思,也可以说是双机热备双机等的应用。如在一些在线时间有特别的要求或是在故障后要在很短的时间内恢复,就有必要应用到这个ha了
本文的应用,由两台机组成的一个LVS及HA,主要是解决分流及单点故障。
如A,B机,正常情况下,A机为LVS转分机,同时又是提供web的服务机,当A机有问题时,B机接管A机的服务,同时自己也是一个web服务机。由于本文的应用中,机器数量有限,所以,将ha,lvs,realserver都放在一起了。在机器允许的情况下,最好分开,如:
LVS转发为独立一台机,再在这转发机上配置HA避免转发机故障,再用一台机来做转发及HA的备机,当主转发机故障时就可接管服务
二 应用环境
机器两台
系统为由本人基于CentOS 5.4 x86_64的定制版
可以看 http://www.wdlinux.cn/centos5.4_x86_64
heartbeat + ldirectord + lvs
结构如下:
VIP:192.168.1.90
Wd1 192.168.1.91
Wd2 192.168.1.92
三 安装
1 可以用源码安装,也可以用yum安装,用源码安装,定制性强一点,但用yum安装,很方便,如:
yum install -y heartbeat
yum install -y heartbeat-ldirectord
即可完成
2 配置(本例的配置文件沿用1.X的风格,2.X以上的功能很强大,也较复杂)
主要的配置文件有以下几个:
Authkeys
ha.cf
ldirectord.cf
haresources
文件内容
# cat authkeys
auth 1
1 crc
# cat ha.cf
#wdlinux.cn conf
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 8
deadtime 60
warntime 60
initdead 120
udpport 694
ucast eth0 192.168.1.92
auto_failback on
node wd1
node wd2
respawn hacluster /usr/lib/heartbeat/ipfail
apiauth ipfail gid=haclient uid=hacluster
# cat ldirectord.cf
#wdlinux.cn conf
checktimeout=10
checkinterval=8
fallback=127.0.0.1:80
autoreload=yes
logfile="/var/log/ldirectord.log"
logfile="local0"
quiescent=no
virtual=192.168.1.90:80
real=192.168.1.91:80 gate
real=192.168.1.92:80 gate
fallback=127.0.0.1:80 gate
service=http
request="lt.html"
receive="Test Page"
scheduler=wrr
persistent=30
protocol=tcp
checktype=negotiate
checkport=80
# cat haresources
Wd1 lvs IPaddr::192.168.1.90/24/eth0:0 ldirectord
wd2上的lvs脚本文件
# cat /etc/rc.d/init.d/lvs
#!/bin/bash
/sbin/ipvsadm --set 10 10 10
Wd2上的lvs脚本文件
# cat /etc/rc.d/init.d/lvs
#!/bin/bash
# wdlinux.cn
VIP=192.168.1.90
/etc/rc.d/init.d/functions
/sbin/ipvsadm --set 10 10 10
case "$1" in
start)
/sbin/ifconfig lo:0 down
/sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev eth0:0
;;
stop)
/sbin/ifconfig eth0:0 down
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev lo:0
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
#cat /etc/hosts
192.168.1.91 wd1
192.168.1.92 wd2
cat /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
在iptables 增加一个对方IP的访问,否则在切换时会有问题
本文的pdf下载 http://www.wdlinux.cn/doc/lvs-ha.pdf
Word版下载 http://www.wdlinux.cn/doc/lvs-ha.doc
最新评论
5 年 20 周之前
5 年 36 周之前
5 年 39 周之前
5 年 50 周之前
6 年 4 周之前
6 年 21 周之前
6 年 25 周之前
6 年 25 周之前
6 年 26 周之前
6 年 28 周之前