您的位置:首页 > 运维架构 > 网站架构

ubuntu10.04下haproxy+heartbeat配置高可用负载均衡

2014-05-12 16:37 302 查看
ubuntu10.04下haproxy+heartbeat配置高可用负载均衡(修改版|亲测绝对可行)
配置前提:ubuntu10.04 server版
ip及主机名设置:
node1: 主机名:www1 ( HA01 )
eth0: 192.168.0.91 //对外IP地址
eth1: 192.168.1.11 //HA心跳使用地址
node2: 主机名:www2 ( HA02 )
eth0: 192.168.0.73 //对外IP地址
eth1: 192.168.1.13 //HA心跳使用地址

vip :192.168.0.99 (注意!此vip不需要刻意手动用命令配置,在heartbeat配置中即可生成!)

一、配置IP及主机名

在www1上:
vi /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.0.91 www1 HA01
192.168.1.11 HA01
192.168.1.13 HA02
192.168.0.73 www2
vi /etc/hostname
www1

在www2上
vi /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.0.73 www2 HA02
192.168.1.13 HA02
192.168.1.11 HA01
192.168.0.91 www1
vi /etc/hostname
www2
(配置完以后可以在www1上ping www2或者在www2上ping www1看是否能ping通,通则hosts和hostname设置成功)

二、配置 heartbeat
在www1和www2上配置如下内容:
1.安装
Apt-get install heartbeat

2.修改内核参数
Vi /etc/sysctl.conf
net.ipv4.ip_nonlocal_bind=1
sysctl -p #让设置生效

拷贝样例文件到ha.d目录下:
#sudo cp /usr/share/doc/heartbeat/authkeys /etc/ha.d/
#sudo cp /usr/share/doc/heartbeat/ha.cf.gz /etc/ha.d/
#sudo cp /usr/share/doc/heartbeat/haresource.gz /etc/ha.d/
#cd /etc/ha.d
#sudo gzip -d ha.cf.gz
#sudo gzip -d haresources.gz

3.设置授权KEY
vi /etc/ha.d/authkeys
auth 3
3 md5 alsww
chmod 600 /etc/ha.d/authkeys #修改权限

4.添加ha资源
vi /etc/ha.d/haresources
www1 192.168.0.99 haproxy

在www1上配置:
vi /etc/ha.d/ha.cf

vim /etc/ha.d/ha.cf
logfacility local0
keepalive 2
deadtime 10
udpport 694
bcast eth0
ucast eth0 192.168.0.73
auto_failback on

node www1
node www2

在www2上配置

vim /etc/ha.d/ha.cf
logfacility local0
keepalive 2
deadtime 10
udpport 694
bcast eth0
ucast eth0 192.168.0.91
auto_failback on

node www1
node www2

vim /etc/ha.d/haresources
www1 192.168.0.99 haproxy

在配置ha.cf文件前后用ip addr sh 命令对比如下,你会发现eth0多了一行:
“inet 192.168.0.99/24 brd 192.168.0.255 scope global secondary eth0:1”这就说明heartbeat的配置生效了!!
如果前后没多出这条命令,说明配置失败!!!

root@www1:~# ip addr sh
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 00:0c:29:09:a7:f5 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.91/24 brd 192.168.0.255 scope global eth0
inet6 fe80::20c:29ff:fe09:a7f5/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 00:0c:29:09:a7:ff brd ff:ff:ff:ff:ff:ff
inet 192.168.1.11/24 brd 192.168.0.255 scope global eth1
inet6 fe80::20c:29ff:fe09:a7ff/64 scope link
valid_lft forever preferred_lft forever
root@www1:~# ip addr sh
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 00:0c:29:09:a7:f5 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.91/24 brd 192.168.0.255 scope global eth0
inet 192.168.0.99/24 brd 192.168.0.255 scope global secondary eth0:1
inet6 fe80::20c:29ff:fe09:a7f5/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 00:0c:29:09:a7:ff brd ff:ff:ff:ff:ff:ff
inet 192.168.1.11/24 brd 192.168.0.255 scope global eth1
inet6 fe80::20c:29ff:fe09:a7ff/64 scope link
valid_lft forever preferred_lft forever

三、配置haproxy

1,下载并配置haproxy主配置文件
在www1和www2上配置:
apt-get install haproxy

cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak

cat /dev/null > /etc/haproxy/haproxy.cfg

vi /etc/haproxy/haproxy.cfg




2,修改默认配置,让haproxy开机自动启动

vim /etc/default/haproxy




3,修改端口号
vim /etc/apache2/ports.conf
修改端口为81
vim /etc/apache2/sites-available/default
修改端口号为81
修改完之后重启apache2服务
( 以上apache2文件最好修改并重启,否则启动haproxy肯定报错!)
4,开启haproxy服务
/etc/init.d/haproxy start
(如果启动不了haproxy服务则修改vi /etc/sysctl.conf文件,在最后添加:
net.ipv4.ip_forward = 1
net.ipv4.ip_nonlocal_bind=1)
5,编辑/var/www目录,加入验证文件
touch /var/www/alswwtest.htm
6,修改测试页面:
vim /var/www/index.html

修改www1的index.html内容为111111111。。。

修改www2的index.html内容为222222222。。。
四、 测试:
输入网址 : http://192.168.0.99 并按F5刷新 ,如果显示的网页在111111111和22222222之间来回切换,则说明配置负载均衡成功。

可用 curl命令验证:



测试heartbeat效果: 关掉www1上的heartbeat服务,这瞬间PING效果如图:



再把www1上的heartbeat服务开启,这时的效果如图:



如果有这2个效果出现,说明配置成功!(备注:在关闭和开启heartbeat服务时,访问192.168.0.99均可正常切换111111和222222页面!!体现出群集的高可用性!)

也可使用haproxy软件web方式查看Web服务当前状态:
输入网址: http://192.168.0.99/haproxy-stats 如果显示如下界面,则配置成功!
(需要输入帐号密码: alsww | alswwpwd 才可进入 )





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  haproxy
相关文章推荐