基于Keepalived+Haproxy搭建四层负载均衡器[原创] 不指定

刘天斯 , 2011/03/10 18:17 , Haproxy , 评论(31) , 阅读(94735) , Via 本站原创 | |
一、前言
       Haproxy是稳定、高性能、高可用性的负载均衡解决方案,支持HTTP及TCP代理后端服务器池,因支持强大灵活的7层acl规则,广泛作为HTTP反向代理。本文则详细介绍如何利用它的四层交换与Keepalived实现一个负载均衡器,适用于Socket、ICE、Mail、Mysql、私有通讯等任意TCP服务。系统架构图如下:

点击在新窗口中浏览此图片

二、平台环境
引用

OS:Centos5.4(64X)
MASTER:192.168.0.20
BACKUP:192.168.0.21
VIP:192.168.0.100
Serivce Port:11231

三、平台安装配置
1、添加非本机IP邦定支持
引用

#vi /etc/sysctl.conf
net.ipv4.ip_nonlocal_bind=1
#sysctl –p

2、配置平台日志支持
引用

#vi /etc/syslog.conf
添加:
local3.*        /var/log/haproxy.log
local0.*        /var/log/haproxy.log

#vi /etc/sysconfig/syslog
修改:
SYSLOGD_OPTIONS="-r -m 0"
#/etc/init.d/syslog restart

3、关闭SELINUX
引用

vi /etc/sysconfig/selinux
修改:
SELINUX=disabled
#setenforce 0

4、配置iptables,添加VRRP通讯支持
引用

iptables -A INPUT -d 224.0.0.18 -j ACCEPT

5、Keepalived的安装、配置
引用

#mkdir -p /home/install/keepalivedha
#cd /home/install/keepalivedha
#wget http://www.keepalived.org/software/keepalived-1.2.2.tar.gz
#tar zxvf keepalived-1.2.2.tar.gz
#cd keepalived-1.2.2
#./configure
#make && make install

引用

#cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
#cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
#mkdir /etc/keepalived
#cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
#cp /usr/local/sbin/keepalived /usr/sbin/

#vi /etc/keepalived/keepalived.conf

6、Haproxy的安装与配置
引用

#cd /home/install/keepalivedha
#wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.11.tar.gz
#tar -zxvf haproxy-1.4.11.tar.gz
#cd haproxy-1.4.11
#make install
#mkdir -p /usr/local/haproxy/etc
#mkdir -p /usr/local/haproxy/sbin
#cp examples/haproxy.cfg /usr/local/haproxy/etc
#ln -s /usr/local/sbin/haproxy /usr/local/haproxy/sbin/haproxy

#vi /usr/local/haproxy/etc/haproxy.cfg

7、邮件通知程序(python实现)
#vi /etc/keepalived/Mailnotify.py

注:修改成系统python实际路径“#!/usr/local/bin/python”(第一行)
#chmod +x /etc/keepalived/Mailnotify.py
#/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/etc/haproxy.cfg
#service keepalived start

8、查看VRRP通讯记录
#tcpdump vrrp
引用

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
15:49:05.270017 IP 192.168.0.20 > VRRP.MCAST.NET: VRRPv2, Advertisement, vrid 50, prio 100, authtype simple, intvl 1s, length 20

四、Haproxy界面
访问http://192.168.0.20/admin-status,输入帐号admin密码123456进入管理监控平台。
点击在新窗口中浏览此图片
haproxy-1.4.9以后版本最大的亮点是添加了手工启用/禁用功能,对升级变更应用时非常有用。

五、邮件通知
点击在新窗口中浏览此图片

如大家有什么疑问或感兴趣的话题可以通过weibo与我交流:http://t.qq.com/yorkoliu
宁波LED Email Homepage
2011/03/23 11:21
嘿嘿不懂,太深奥了。
im@sorry.com Email Homepage
2011/03/21 21:30
请教个问题,使用haproxy,在后端服务器上,看到的IP是客户端的,还是haproxy的?
刘天斯 回复于 2011/03/21 22:34
默认看到的是Haproxy主机的IP,需做插入X-Forwarded-For头处理,在Haproxy配置中添加option forwardfor选项,后端服务器则用X-Forwarded-For方法来获取用户IP便可。
leoer Email
2011/03/14 22:26
按刘老大的文章一次配置成功,呵呵。好好研究一下。
sky Homepage
2011/03/12 10:49
stats admin if TRUE这句可以省略吧
刘天斯 回复于 2011/03/12 13:00
stats admin if TRUE是激活管理员权限,如去掉手工“启用/禁用”功能将不可见。
佛是一种境界 Email Homepage
2011/03/11 13:45
学习了。准备先在虚拟机上测试。
Nano Email
2011/03/11 13:41
haproxy-1.4.11最大的亮点是添加了手工启用/禁用功能,想请教一下天斯兄应该如何开启该功能?谢谢了!!
刘天斯 回复于 2011/03/11 14:06
CHANGELOG  2010/10/29 : 1.4.9    - [MEDIUM] enable/disable servers from the stats web interface
一路狂飙 Email Homepage
2011/03/11 12:38
偶像一样的存在着,不过这种基于软件的负载解决方案,承载它的主机要什么配置才够呢?
刘天斯 回复于 2011/03/11 14:23
CPU双核或以上,内存至少2G。流量大可考虑千M网络支持。
shark巨菜
2011/03/11 10:30
刘哥很厉害。还没敢做实验的东西都用上,并且出文章了。
David
2011/03/11 10:30
Good
二手菜 Email Homepage
2011/03/11 10:29
第二个沙发啊!
jackshan
2011/03/11 09:42
第一个沙发啊
分页: 2/2 第一页 上页 1 2 最后页
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]