服务器划分
注:测试环境因此nginx和Apache都部署在同一台real server上
Master和backup和real server服务器公用。
VIP |
172.20.0.210 |
Master |
172.20.0.22 |
Backup |
172.20.0.25 |
Real_server |
172.20.0.22 |
Real_server |
172.20.0.25 |
Web :nginx |
port:8220 |
Web :Apache |
port:8221 |
Master和backup部署
安装ipvsadm
创建相应的目录
[root@SALT1 ~]# mkdir software [root@SALT1 ~]# cd software/ |
下载安装包:
相应的命令为:
wget
http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
查看内核参数
[root@SALT1 software]# uname
Linux SALT1 2.6.32-431.el6.x86_64 #1 SMP |
创建软连接,不创建此链接,ipvsadm编译安装不过去。
[root@SALT1 software]# ln -s |
编译安装ipvsadm
[root@SALT1 software]# ls ipvsadm-1.24.tar.gz
[root@SALT1 software]# tar -xvf ipvsadm-1.24/config_stream.c ipvsadm-1.24/config_stream.h …….
[root@SALT1 software]# cd
[root@SALT1 ipvsadm-1.24]# make make -C libipvs
make[1]: Entering directory
gcc -Wall -Wunused -Wstrict-prototypes -g …….. |
加载LVS的 IP_VS模块
[root@ccb log]# ipvsadm
IP Virtual Server version 1.2.1 Prot LocalAddress:Port Scheduler Flags
[root@ccb log]# lsmod |grep ip_vs ip_vs 115643 0 libcrc32c 1246 1 ip_vs ipv6 321422 31 ip_vs |
安装keepalived
下载安装包
相应的命令为:
[root@SALT1 software]# wget
–2016-07-13 14:09:03–
Resolving www.keepalived.org…
Connecting to
HTTP request sent, awaiting response…
Length: 241437 (236K) Saving to: “keepalived-1.1.19.tar.gz”
100%[===================================================================================================================>]
2016-07-13 14:09:06 (190 KB/s) –
|
编译安装keepalived
[root@SALT1 software]# tar keepalived-1.1.19/ keepalived-1.1.19/config.log keepalived-1.1.19/configure keepalived-1.1.19/README keepalived-1.1.19/ChangeLog keepalived-1.1.19/Makefile.in ……..
[root@SALT1 software]# cd [root@SALT1 keepalived-1.1.19]# ./configure –prefix=/usr/local/keepalived checking for gcc… gcc …… [root@SALT1 keepalived-1.1.19]# [root@SALT1 keepalived-1.1.19]# make make -C lib || exit 1;
make[1]: Entering directory gcc -g -O2 -I. -Wall -Wunused -Wstrict-prototypes -c memory.c
gcc -g -O2 -I. -Wall -Wunused …… Make complete
[root@SALT1 keepalived-1.1.19]# make make -C keepalived install
make[1]: Entering directory install -d /usr/local/keepalived/sbin …… |
创建相应的目录
[root@ccb keepalived-1.1.19]# cp
[root@ccb keepalived-1.1.19]# cp
[root@ccb keepalived-1.1.19]# cp [root@ccb keepalived-1.1.19]# mkdir /etc/keepalived/ [root@ccb keepalived-1.1.19]#cd
[root@ccb ~]# cp |
至此lvskeepalived安装完成。
Keepalived配置
Master配置:
[root@localhost ~]# vi /etc/keepalived/keepalived.conf #global define global_defs { router_id node-A }
vrrp_sync_group test { group {
} }
vrrp_instance test {
} virtual_server 172.20.0.210 8220 {
connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 8220
connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 8220
} virtual_server 172.20.0.210 8221 {
connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 8221
real_server 172.20.0.22 8221 {
connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 8221
} |
Backup配置
[root@localhost ~]# vi #global define global_defs { router_id node-B }
vrrp_sync_group test { group {
} }
vrrp_instance test {
} virtual_server 172.20.0.210 8220 {
connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 8220
connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 8220
} virtual_server 172.20.0.210 8221 {
TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 8221
real_server 172.20.0.22 8221 {
connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 8221
} |
Web应用配置:
确认启动nginx和apache:
[root@localhost sbin]# lsof
COMMAND
nginx
nginx
[root@localhost sbin]# lsof
COMMAND
httpd
httpd
httpd
httpd
httpd
httpd
httpd
httpd
httpd |
在两台real_server上分别创建lvsDR_node脚本:
[root@localhost ~]# vi #!/bin/bash
# descript : start real server DR
VIP=172.20.0.210
. /etc/rc.d/init.d/functions
case “$1” in
echo “start LVS of
/sbin/ifconfig lo:0 $VIP
echo “1” >
echo “2” >
;;
/sbin/ifconfig lo:0 down
echo “close LVS of
echo “0” >
echo “0” >
;;
echo “Usage : $0
exit 1
esac |
启动keepalived:
分别启动master和backup服务器上面的keepalived:
[root@localhost ~]# /etc/init.d/keepalived Starting keepalived: [ OK ] [root@localhost ~]# |
启动real_server上面的lvsDR_node
[root@localhost ~]# /etc/init.d/lvsDR_node start LVS of RealServer DR |
验证:
查看启动状态:
Master:
backup
Web切换验证
Apache验证
Nginx验证:
现在VIP是在master服务器(172.20.0.22)服务器上,为了确保web应用切换之后应用也能正常访问,将master服务器上的nginx和apache停掉。:
可以看到22服务器上nginx和Apache都不能访问了
Nginx:
Apache:
查看状态:
使用VIP访问:
如上图可以看到web应用切换之后web应用依然可以通过VIP正常访问。
VIP切换验证:
切换VIP
Master:
Backup
Nginx验证:
Apache验证:
注:当master上的keepalived再次启动,VIP又会立刻切换到master上,而backup会自动切换为backup state。
如图: