2019独角兽企业重金招聘Python工程师标准>>>
搭建环境:
以下都是在在vm下的centOS-6.5系统:
负载均衡主机:192.168.48.130
负载均衡备机:192.168.48.133
真实服务器1:192.168.48.131
真实服务器2:192.168.48.132
实现功能:
1,转发(访问vip,能转发到真实服务器。vip:虚拟ip,访问时是通过vip进行访问)
2,故障移除(服务器故障后,能不转发到故障机器)
3,恢复添加(服务器故障排除后,能自动添加进)
4,备接主(主机故障,备机能接收管主机工作)
下面,撸起袖子干。。。(以下操作默认使用root登录,关闭系统防火墙)
一,搭建负载均衡主机。
1,先安装keepalived,将keepalived-1.2.7-3.el6.x86_64.rpm 包放置根目录下,然后运行以下命令
rpm -ivh keepalived-1.2.7-3.el6.x86_64.rpm
2,修改keepalived.conf文件。
先清除,执行以下命令。
> /etc/keepalived/keepalived.conf
接着,编辑,执行
vim /etc/keepalived/keepalived.conf
输入以下内容
#全局定义块
global_defs {
# 邮件通知配置
# notification_email {
# email1
# email2
# }
#notification_email_from email
# smtp_server host
#smtp_connect_timeout num
#lvs_id string
router_id LVS_DEVEL ##DEVEL BACKUP 标识本节点的字条串,通常为hostname
}
#VRRP 实例定义块
vrrp_instance VI_1{
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.48.118
}
}
#虚拟服务器定义块
virtual_server 192.168.48.118 80 {
delay_loop 6
lb_algo wrr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 0
protocol TCP
real_server 192.168.48.131 80 {
weight 3
TCP_CHECK {
nb_get_retry 3
delay_before_retry 3
connect_port 80
connect_timeout 10
}
}
real_server 192.168.48.132 80 {
weight 3
TCP_CHECK {
nb_get_retry 3
delay_before_retry 3
connect_port 80
connect_timeout 10
}
}
}
保存退出,按esc,输入:wq 回车
最后开启,执行以下命令
service keepalived start
执行以下命令查看是否成功:(若是多一个虚拟网址《192.168.48.118》则成功)
ip a
二,搭建真实服务器1(192.168.48.132)
配置虚拟IP启动脚本
vim /etc/init.d/realserver.sh
输入以下内容:
#vi /usr/local/sbin/realserver.sh
#!/bin/bash
# description: Config realserver lo and apply noarp
SNS_VIP=192.168.48.118
. /etc/rc.d/init.d/functions
case "$1" in
start)
ifconfig lo:0 $SNS_VIP broadcast $SNS_VIP netmask 255.255.255.255 up
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p >/dev/null 2>&1
echo "RealServer Start OK"
;;
stop)
ifconfig lo:0 down
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "RealServer Stoped"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
保存退出。
然后启动服务器(可以安装tomcat),本人使用的是centOS自带的http服务器,因此直接启动就行,
执行以下命令启动
service httpd start
访问192.168.48.132,若成功,则如下
为了区分第二台服务器,修改主页内容。
vim /var/www/html/index.html
内容为: it's 192.168.48.132.....
保存退出。
刷新页面,则如下图:
启动刚才修改的虚拟IP的脚本,执行以下命令,出现下图标记网卡接口
sh /etc/init.d/realserver.sh start
这时查看网卡接口信息:会多出如下图标记的虚拟接口
这时通过访问 192.168.48.118,若能转发到192.168.48.132上,则成功,如下图
三,重复以上步骤,再搭建一台负载均衡机与一台真实服务器
①参照一(步骤一样),搭建负载均衡备机(192.168.48.133),不同的是keepalived.conf内容(以下图标记)
②参照二(步骤一样),搭建真实服务器2(192.168.48.131)。
到这,环境已经搭建完毕。
====================================================
实现功能:
①访问vip 192.168.48.118,能转发到真实服务器1(192.168.48.132)或真实服务器2(192.168.48.131)上,如下图:
②手动停止服务器2(192.168.48.131),再访问vip 192.168.48.118,只会转发到真实服务器1(192.168.48.132)上,如下图:
③再次启动服务器2(192.168.48.131),又能转发到此机器上。图略
④手动停止负载均衡主机(192.168.48.130),如下图:
查看负载均衡备机(192.168.48.130)网卡接口情况:
访问vip,依然能进行转发。
=====================================================
done.