前言
Haproxy是稳定、高性能、高可用性的负载均衡解决方案,支持HTTP及TCP代理后端服务器池,因支持强大灵活的7层acl规则,广泛作为HTTP反向代理。本文则详细介绍如何利用它的四层交换与Keepalived实现一个负载均衡器,适用于Socket、ICE、Mail、Mysql、私有通讯等任意TCP服务。系统架构图如下:
环境
OS: Centos6.x(64X)
MASTER: 192.168.0.20
BACKUP: 192.168.0.21
VIP: 192.168.0.100
Serivce Port: 11231
安装配置
添加非本机IP邦定支持
#vim /etc/sysctl.conf
1 | net.ipv4.ip_nonlocal_bind=1 |
配置平台日志支持
#vim /etc/syslog.conf 添加
1 | local3.* /var/log/haproxy.log |
#vim /etc/sysconfig/syslog
修改:
1 | SYSLOGD_OPTIONS="-r -m 0" |
#/etc/init.d/syslog restart
关闭SELINUX
vim /etc/sysconfig/selinux
修改
1 | SELINUX=disabled |
#setenforce 0
配置iptables
添加VRRP通讯支持
1 | iptables -A INPUT -d 224.0.0.18 -j ACCEPT |
Keepalived的安装、配置
1 | #mkdir -p /home/install/keepalivedha |
#vim /etc/keepalived/keepalived.conf
1 | ! Configuration File for keepalived |
Haproxy的安装与配置
1 | #cd /home/install/keepalivedha |
#vim /usr/local/haproxy/etc/haproxy.cfg
1 | # this config needs haproxy-1.1.28 or haproxy-1.2.1 |
邮件通知程序(python实现)
#vim /etc/keepalived/Mailnotify.py
1 | #!/usr/local/bin/python |
注:修改成系统python实际路径“#!/usr/local/bin/python”(第一行)
1 | #chmod +x /etc/keepalived/Mailnotify.py |
查看VRRP通讯记录
1 | #tcpdump vrrp |
Haproxy界面
访问http://192.168.0.20/admin-status,输入帐号admin密码123456进入管理监控平台。
haproxy-1.4.9以后版本最大的亮点是添加了手工启用/禁用功能,对升级变更应用时非常有用。