Linux配置浮动IP实现WEB高可用
来源:互联网 发布:淘宝省钱机器人有诈吗 编辑:程序博客网 时间:2024/06/16 02:15
在高可用集群环境中,一般都需要使用浮动IP来实现web高可用(High Availability)。
浮动IP的概念以及为什么需要浮动IP请参考:浮动IP(FLOAT IP)
本篇文章主要讲实际操作步骤:
可以是双机,也可以是多机,主服务器为172.24.8.55,浮动IP设置为172.24.8.80。
一、配置浮动IP:
利用单个网卡可以绑定多个IP地址的技术。
1、主服务器配置浮动IP
在主服务器上拷贝eth0位eth0:1,并做修改。
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:1
编辑文件ifcfg-eth0:1:
vim /etc/sysconfig/network-scripts/ifcfg-eth0:1
修改DEVICE为eth0:1,NM_CONTROLLED设置为no,IPADDR改为浮动IP地址172.24.8.80,去掉网关信息,修改完如下:
DEVICE="eth0:1"
BOOTPROTO="static"
ONBOOT="yes"
NM_CONTROLLED="no"
TYPE="Ethernet"
IPADDR="172.24.8.80"
NETMASK="255.255.255.0"
然后启动该网卡,验证是否生效:
ifup eth0:1
查看是否有浮动IP地址:
ip addr
接着访问浮动IP地址172.24.8.80,能访问成功,即和主服务器172.24.8.55访问的一样,则说明配置成功。
2、从服务器配置浮动IP
配置步骤和主服务器完全一样,eth0:1的IP地址同样设置成浮动IP172.24.8.80,在启动网卡测试之前,需在主服务器关闭浮动IP:
ifdown eth0:1
然后在从服务器启动eth0:1
ifup eth0:1
测试步骤也和主服务器一样。
3、如果还有其他从服务器,配置步骤如上。
二、写脚本完成浮动IP的自动开启与关闭
利用crontab自动执行技术,定时检查IP地址的状态,并启动eth0:1或者关闭eth0:1。
1、从服务器脚本 slaveFloatIP.sh:
MASTER_IP="172.24.8.55"
FLOAT_IP="172.24.8.80"
c1=$(/usr/bin/ping $MASTER_IP -c 1|grep Unreachable|wc -l)
c2=$(/usr/bin/ping $FLOAT_IP -c 1|grep Unreachable|wc -l)
c3=$(/usr/sbin/ip addr|grep eth0:1)
if [ $c1 -gt 0 -a $c2 -gt 0 ]
then
/usr/sbin/ifup eth0:1
elif [ $c1 -eq 0 -a $c2 -eq 0 -a "$c3" ]
then
/usr/sbin/ifdown eth0:1
fi
ping 主服务器IP地址,如果ping不通,说明主服务器挂掉了,再ping浮动IP地址,如果ping不通,说明没启动浮动IP,则启动浮动IP。
当主服务器再上线,即能够ping通主服务器,同时能ping通浮动IP地址,再判断是否是该从服务器启动了浮动IP,如果是,则需要关闭,让主服务器启动浮动IP。
如果还有其他从服务器,只需拷贝该脚本。
2、主服务器脚本 masterFloatIP.sh:
FLOAT_IP="172.24.8.80"c=$(/usr/bin/ping $FLOAT_IP -c 1|grep Unreachable|wc -l)
if [ $c -gt 0 ]
then
/usr/sbin/ifup eth0:1
fi
ping不通浮动IP地址,则启动eth0:1
3、使用crontab每隔5秒自动执行脚本。
crontab -e
进入文件编辑界面,主服务器配置如下:
* * * * * /root/masterFloatIP.sh* * * * * sleep 5; /root/masterFloatIP.sh
* * * * * sleep 10; /root/masterFloatIP.sh
* * * * * sleep 15; /root/masterFloatIP.sh
* * * * * sleep 20; /root/masterFloatIP.sh
* * * * * sleep 25; /root/masterFloatIP.sh
* * * * * sleep 30; /root/masterFloatIP.sh
* * * * * sleep 35; /root/masterFloatIP.sh
* * * * * sleep 40; /root/masterFloatIP.sh
* * * * * sleep 45; /root/masterFloatIP.sh
* * * * * sleep 50; /root/masterFloatIP.sh
* * * * * sleep 55; /root/masterFloatIP.sh
从服务器配置也是一样的,脚本路径改为 /root/slaveFloatIP.sh
关于crontab的介绍和使用请参考:crontab的介绍
到这里就完成了浮动IP的配置和主从服务器自动开启浮动IP。
完成后就可以通过浮动IP地址访问,服务器集群内只要有一台服务器正常运行,web就能访问,实现了web高可用。
- Linux配置浮动IP实现WEB高可用
- linux上keepalived+nginx实现高可用web负载均衡
- Apache+tomcat实现高可用WEB集群
- linux高可用集群heartbeat实现http的高可用
- ActiveMQ+Zookeeper 集群配置实现高可用
- 配置浮动IP地址
- Linux 实现MySQL+Keepalive 高可用
- Linux下keepalived+mysql 实现高可用
- Linux之Keepalived实现高可用
- CentOS下nginx+keepalived配置高可用Web站点
- 分布式架构高可用架构篇_04_Keepalived+Nginx实现高可用Web负载均衡
- 分布式架构高可用架构篇_04_Keepalived+Nginx实现高可用Web负载均衡
- 分布式架构高可用架构_Keepalived+Nginx实现高可用Web负载均衡
- 分布式架构高可用架构_Keepalived+Nginx实现高可用Web负载均衡
- 主题:分布式架构高可用架构_Keepalived+Nginx实现高可用Web负载均衡
- 分布式架构高可用架构篇_04_Keepalived+Nginx实现高可用Web负载均衡
- 在Linux 双机下自己手动实现浮动ip技术
- lvs/dr+keepalived实现Web负载均衡Dr高可用
- thinkphp代码总结
- ubus例子
- 什么是Node.js
- 在Eclipse中创建Django项目
- 计算机视觉与深度学习(11)
- Linux配置浮动IP实现WEB高可用
- 《Java 编程技巧1001条》第391条 在数组中查找一指定值
- 解决win7下安装oracle 10g出现蓝屏问题
- java之将字节数组流转化为字符流来读取
- PCA详解
- Pageable接口
- 网络布局
- fireworks常用快捷键
- 百度配置管理disconf配置文件