HA+Keepalive简单双机热备
为了省IP,公司的一些项目前端要全用HA来跑了~~于是整了一套简单的HA+Keepalive的双机热备,方便出问题的时候自动切换~。有人说为什么不用LVS,直接就用Keepalive了,问题是,LVS是个4层交换软件,我需要用域名来做HA,所以无法做到7层上,于是被逼无奈使用了HA~,这里我向大家简单展示了HA同时监听80端口和8081端口的配置方案,欢迎大家提出建议和意见。
设备内容:2台CentOS5.9 的R610 服务器:
- 1台主:ip:172.16.68.8
- 1台从:ip:172.16.68.9
- vip: 172.16.68.10
1.Keepalive安装
1.1 安装ipvsadm
1.2 下载Keepalived
tar -zxvf keepalived-1.2.7.tar.gz
cd keepalived-1.2.7
./configure –prefix=/usr –sysconf=/etc –with-kernel-dir=/usr/src/kernels/2.6.18-128.el5-x86_64/
make
make install
1.3 编辑keepalved.conf配置文件(主服务器)
配置文件内容如下:
router_id NGBOSSLVS_NODE_1
}
vrrp_instance V_NGBOSS {
state MASTER
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 51
priority 200
advert_int 2
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.16.68.10
}
}
1.4 编辑keepalved.conf配置文件(备份服务器)
router_id NGBOSSLVS_NODE_2
}
vrrp_instance V_NGBOSS {
state BACKUP
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 51
priority 100
advert_int 2
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.16.68.10
}
}
1.5 将keepalived服务加入开机启动启动。
chkconfig –add keepalived
chkconfig keepalived on
1.6 启动keepalived
2.HA的安装
HA的安装实际上十分简单,我们使用最新的1.4.22版本。
tar zcvf haproxy-1.4.22.tar.gz
cd haproxy-1.4.22
make TARGET=linux26 PREFIX=/usr/local/haproxy
make install PREFIX=/usr/local/haproxy
安装好之后,实际上有用的只是/usr/local/haproxy/sbin下的haproxy这个命令。
接下来,设置Haproxy的自动启动脚本
chmod u+x /etc/init.d/haproxy
然后是haproxy的配置文件haproxy.cfg
vim /etc/haproxy/haproxy.cfg
下面我给出我现在使用的haproxy.cfg简单例子,如果你需要的话,可以拿着照葫芦画瓢即可~很简单。
global
maxconn 65535 ? ? # 最大连接数,注意它受ulimit限制
daemon
nbproc 4 ? ?# cpu有多少个核
stats socket /var/run/haproxy.socket
defaults
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
#option httpclose #默认的http模式是这个,但是我将其改为了能够支持长连接的方式
option http-pretend-keepalive
frontend http-in
bind *:80
acl wychat01 hdr(host) eq wychat01.weiyan.me
acl wybb01 hdr(host) eq wybb01.weiyan.me
use_backend test_wy_chat01 if wychat01
use_backend test_wy_bb01 if wybb01
# test weiyan.me API 8081 Port
frontend http-8081-in
bind *:8081
acl wyapi01 hdr(host) eq api01.weiyan.me:8081
use_backend test_wy_api01 if wyapi01
#########################
#
# chat rules
#
##########################
backend test_wy_chat01
balance roundrobin # Load Balancing algorithm
stats uri /admin?stats
option httpchk
option forwardfor # This sets X-Forwarded-For
# Define your servers to balance
server chat01.wy.cn.ngb1.weiyan.me 172.16.68.20:80 maxconn 65535
#########################
#
# bb rules
#
##########################
backend test_wy_bb01
balance roundrobin # Load Balancing algorithm
stats uri /admin?stats
option httpchk
option forwardfor # This sets X-Forwarded-For
# Define your servers to balance
server bb01.wy.cn.ngb1.weiyan.me 172.16.68.19:80 maxconn 65535
#####################
#
# api rules
#
#####################
backend test_wy_api01
balance roundrobin # Load Balancing algorithm
stats uri /admin?stats
option httpchk
option forwardfor # This sets X-Forwarded-For
# Define your servers to balance
server api01.wy.cn.ngb1.weiyan.me 172.16.68.74:80 maxconn 2048
实际上配置文件这货,结构十分简单,只要将global和defaults设置好,接下来就是定义规则的问题了。
最后,启动haproxy
(2)条评论
妸泺鹦鹉つ
| #
很实用,很棒!正在马哥这里学习这块的知识点呢
回复
哦呦呦呦拳
| #
@妸泺鹦鹉つ: 感谢你的支持~希望你在马哥那学习愉快~不要忘了调戏马哥哟~
回复