在高可用集群环境中,一般都需要使用浮动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高可用的更多相关文章

  1. Linux配置浮动IP

    在高可用集群环境中,一般都需要使用浮动IP来实现web高可用(High Availability). 浮动IP的概念以及为什么需要浮动IP请参考:https://blog.csdn.net/readi ...

  2. Linux系统浮动IP的配置

    什么是浮动IP,为什么要配置浮动IP 首先说一下为什么要配置浮动IP. 原文链接:https://blog.csdn.net/readiay/article/details/53538085 现在有一 ...

  3. 高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群

    高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群 libnet软件包<-依赖-heartbeat(包含ldirectord插件(需要perl-MailTools的rpm包)) l ...

  4. Corosync+Pacemaker+crmsh构建Web高可用集群

    一.概述: 1.1 AIS和OpenAIS简介 AIS应用接口规范,是用来定义应用程序接口(API)的开放性规范的集合,这些应用程序作为中间件为应用服务提供一种开放.高移植性的程序接口.是在实现高可用 ...

  5. linux配置网卡IP地址命令详细介绍及一些常用网络配置命令

    linux配置网卡IP地址命令详细介绍及一些常用网络配置命令2010-- 个评论 收藏 我要投稿 Linux命令行下配置IP地址不像图形界面下那么方 便,完全需要我们手动配置,下面就给大家介绍几种配置 ...

  6. 详述Linux配置静态IP、设置DNS和主机名(一)

    Linux配置静态IP.设置DNS和主机名首先要找到配置文件,这是在Linux系统下进行工作的必须知道工作方式.后面一步步的跟着这个范例来进行配置相信你最终也会完成Linux配置静态IP.设置DNS和 ...

  7. Spring Cloud(八):配置中心(服务化与高可用)【Finchley 版】

    Spring Cloud(八):配置中心(服务化与高可用)[Finchley 版]  发表于 2018-04-19 |  更新于 2018-04-26 |  本文接之前的<Spring Clou ...

  8. Linux配置代理IP

    Linux配置代理IP: vim /etc/profile http_proxy=http://username:password@ip:port/ https_proxy=http://userna ...

  9. Nginx系列篇三:linux中Nginx+keepalived做一个高可用的主从配置

    建议:先阅读搭建Nginx负载均衡之后再看此篇 备注: Nginx+keepalived的高可用有两种方式 一.主从配置 二.双主热备配置[下一篇] 准备: 标配四台服务器 Master:192.16 ...

随机推荐

  1. AOJ/堆与动态规划习题集

    ALDS1_9_A-CompleteBinaryTree. Codes: //#define LOCAL #include <cstdio> int parent(int i) { ret ...

  2. IOS的自定义控件

    这里做一个类似于下面界面的小案例 1.创建一个空的布局文件 .xib new File -->User Interface -->选择View 创建一个空的view ,会自动生成一个 .x ...

  3. Docker - 定制镜像

    Dockerfile Docker Hub拥有大量高质的官方镜像:可直接使用的服务类镜像.语言应用镜像.基础操作系统镜像等,满足绝大部分需求. 此外,可以通过定制镜像的方式来满足实际使用中的特定需求. ...

  4. Docker - 虚拟网桥

    容器的网络模式 None --- 容器不能访问外部网络,内部存在回路地址. Container --- 将容器的网络栈合并到一起,可与其他容器共享网络. Host --- 与主机共享网络. Bridg ...

  5. hdu4614 Vases and Flowers 线段树+二分

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4614 题意: 给你N个花瓶,编号是0  到 N - 1 ,初始状态花瓶是空的,每个花瓶最多插一朵花. ...

  6. [玩耍]C++控制台扫雷

    其实是大一还不会GUI时闲着无聊写的.都是硬编码,也不支持自定义棋盘大小,现在看看这代码惨不忍睹.下载地址:http://download.csdn.net/download/xienaoban/98 ...

  7. HAProxy的三种不同类型配置方案

    haproxy是一款功能强大.灵活好用反向代理软件,提供了高可用.负载均衡.后端服务器代理的功能,它在7层负载均衡方面的功能很强大(支持 cookie track, header rewrite等等) ...

  8. python selenium 环境搭建(一)

    elenium 虽然过了这么多年,但是到目前为止依然是比较流行的自动化框架了,还有很多的初学者在学习,所以根据自己的时间将把相关的资料汇总一下,下面首先我们需要搭建一下基础环境. 首先自己本身比较笨, ...

  9. [开源] 基于ABP,Hangfire的开源Sharepoint文件同步程序----SuperRocket.SPSync

    (一)项目背景 Sharepoint是微软的一个产品,很多公司都在使用它,也有很多公司以前使用它,现在可能需要移植到别的平台,也可能只是移植其中的文件存储,比如说移植到微软云,或者亚马逊云存储.Sup ...

  10. VR全景是市场价值及前景

    消费者视角痛点:比如酒店消费行业,很多消费者在预订酒店过程中,都遇到过这样的场景:网上照片里酒店房间看着宽敞明亮,格调不凡,感觉非常喜欢,等真正推开房门插上房卡一看,却大失所望.在酒店行业,网上照片和 ...