Linux配置浮动IP实现WEB高可用
在高可用集群环境中,一般都需要使用浮动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 |grep Unreachable|wc -l)
c2=$(/usr/bin/ping $FLOAT_IP -c |grep Unreachable|wc -l)
c3=$(/usr/sbin/ip addr|grep eth0:)
if [ $c1 -gt -a $c2 -gt ]
then
/usr/sbin/ifup eth0:
elif [ $c1 -eq -a $c2 -eq -a "$c3" ]
then
/usr/sbin/ifdown eth0:
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 |grep Unreachable|wc -l)
if [ $c -gt ]
then
/usr/sbin/ifup eth0:
fi
ping不通浮动IP地址,则启动eth0:1
3、使用crontab每隔5秒自动执行脚本。
crontab -e
进入文件编辑界面,主服务器配置如下:
* * * * * /root/masterFloatIP.sh
* * * * * sleep ; /root/masterFloatIP.sh
* * * * * sleep ; /root/masterFloatIP.sh
* * * * * sleep ; /root/masterFloatIP.sh
* * * * * sleep ; /root/masterFloatIP.sh
* * * * * sleep ; /root/masterFloatIP.sh
* * * * * sleep ; /root/masterFloatIP.sh
* * * * * sleep ; /root/masterFloatIP.sh
* * * * * sleep ; /root/masterFloatIP.sh
* * * * * sleep ; /root/masterFloatIP.sh
* * * * * sleep ; /root/masterFloatIP.sh
* * * * * sleep ; /root/masterFloatIP.sh
从服务器配置也是一样的,脚本路径改为 /root/slaveFloatIP.sh
关于crontab的介绍和使用请参考:crontab的介绍
到这里就完成了浮动IP的配置和主从服务器自动开启浮动IP。
完成后就可以通过浮动IP地址访问,服务器集群内只要有一台服务器正常运行,web就能访问,实现了web高可用。
Linux配置浮动IP实现WEB高可用的更多相关文章
- Linux配置浮动IP
在高可用集群环境中,一般都需要使用浮动IP来实现web高可用(High Availability). 浮动IP的概念以及为什么需要浮动IP请参考:https://blog.csdn.net/readi ...
- Linux系统浮动IP的配置
什么是浮动IP,为什么要配置浮动IP 首先说一下为什么要配置浮动IP. 原文链接:https://blog.csdn.net/readiay/article/details/53538085 现在有一 ...
- 高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群
高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群 libnet软件包<-依赖-heartbeat(包含ldirectord插件(需要perl-MailTools的rpm包)) l ...
- Corosync+Pacemaker+crmsh构建Web高可用集群
一.概述: 1.1 AIS和OpenAIS简介 AIS应用接口规范,是用来定义应用程序接口(API)的开放性规范的集合,这些应用程序作为中间件为应用服务提供一种开放.高移植性的程序接口.是在实现高可用 ...
- linux配置网卡IP地址命令详细介绍及一些常用网络配置命令
linux配置网卡IP地址命令详细介绍及一些常用网络配置命令2010-- 个评论 收藏 我要投稿 Linux命令行下配置IP地址不像图形界面下那么方 便,完全需要我们手动配置,下面就给大家介绍几种配置 ...
- 详述Linux配置静态IP、设置DNS和主机名(一)
Linux配置静态IP.设置DNS和主机名首先要找到配置文件,这是在Linux系统下进行工作的必须知道工作方式.后面一步步的跟着这个范例来进行配置相信你最终也会完成Linux配置静态IP.设置DNS和 ...
- Spring Cloud(八):配置中心(服务化与高可用)【Finchley 版】
Spring Cloud(八):配置中心(服务化与高可用)[Finchley 版] 发表于 2018-04-19 | 更新于 2018-04-26 | 本文接之前的<Spring Clou ...
- Linux配置代理IP
Linux配置代理IP: vim /etc/profile http_proxy=http://username:password@ip:port/ https_proxy=http://userna ...
- Nginx系列篇三:linux中Nginx+keepalived做一个高可用的主从配置
建议:先阅读搭建Nginx负载均衡之后再看此篇 备注: Nginx+keepalived的高可用有两种方式 一.主从配置 二.双主热备配置[下一篇] 准备: 标配四台服务器 Master:192.16 ...
随机推荐
- FTP中MLST概要解读---解决获取ftpFile为null的另外一种方式
零.引言 之前写FTP工具库,用的是ftp4j,他使用其他非常简单方便,但是在细节上提供的可选项比较少(当然也可能是我了解不够深刻) 最新的项目重写了FTP工具类,选择了apache net中的ftp ...
- JS中对于prototype的理解
JS中的prototype是JS中比较难理解的一个部分 本文基于下面几个知识点: 1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是,现在有1个类A,我想要创建一个 ...
- linux中/etc/profile、/etc/profile.d/、/etc/bashrc、~/.bashrc、~/.bash_profile、~/.bash_logout的作用与区别
作用: /etc/profile:登录时用来设置环境变量,执行文件中的命令,对所有用户生效. /etc/profile.d/:登录时和执行bash命令打开子shell时执行目录下所有已.sh结尾的脚本 ...
- Ext JS 实现建议词模糊动态搜索功能
代码: new Ext.form.ComboBox({ store: new Ext.data.JsonStore({ idProperty: 'VehicleNo', url: '../ajax/t ...
- Hibernate 核心接口和工作机制
主要内容 Configuration类 sessionFactory接口 session接口 Transaction接口 Query 和 criteria接口 1.Configuration类 负责管 ...
- Html标签,file方式,上传文件
恩,如果不记下来,记忆就会模糊掉. 希望自己下次看见这篇博客的时候,会解决掉疑问 ----------------------------------------------------------- ...
- Fiddler插件 --- 解密Elong Mapi请求参数及响应内容
当前问题: 在我们日常的Web/App测试过程中, Fiddler是一大辅助利器:在我们团队,也经常使用Fiddler进行App抓包测试. 艺龙 App使用的REST(内部称为Mapi)接口,在使用过 ...
- 【JAVAWEB学习笔记】22_ajax
Js原生Ajax和Jquery的Ajax 学习目标 案例1-异步校验用户名是否存在 案例2-站内查询 一.Ajax概述 1.什么是同步,什么是异步 同步现象:客户端发送请求到服务器端,当服务器返回响应 ...
- js算法集合(二) javascript实现斐波那契数列 (兔子数列)
js算法集合(二) 斐波那契数列 ★ 上一次我跟大家分享一下做水仙花数的算法的思路,并对其扩展到自幂数的算法,这次,我们来对斐波那契数列进行研究,来加深对循环的理解. Javascript实 ...
- 瀑布流布局使用详解——JQuery插件Isotope(动态实现子项目筛选)
瀑布流布局,听起来听牛逼的样子,其实就是简单的子元素筛选功能.不过这一功能在网站页面布局当中还是很常用的,特别是在电商网站中 经常会有点一个钮筛选,然后页面的子元素刷的以下变了样.接下来,我们先简单介 ...