1.使用yum安装keepalived

yum install keepalived -y

2.修改配置文件keepalived.conf

主服务器配置文件

global_defs {
router_id NodeA
}
vrrp_script check_run {
script "/etc/keepalived/check_nginx.sh"  #自定义检查nginx的脚本
interval
weight
}
vrrp_instance VI_1 {
state MASTER #设置为主服务器
interface eth0 #监测网络接口
virtual_router_id #虚拟路由标识,主、备必须一样
priority #(主、备机取不同的优先级,主机值较大,备份机值较小,值越大优先级越高)
advert_int #VRRP Multicast广播周期秒数
nopreempt #恢复后也不抢占资源
authentication {
auth_type PASS #VRRP认证方式,主备必须一致
auth_pass 1111 #(密码)
}
track_script {
check_run
}
virtual_ipaddress {
  虚拟IP/掩码 #VRRP HA虚拟地址
}
}

检查nginx服务状态的脚本,check_nginx.sh

#!/bin/bash
netstat -npl|grep -q nginx
if [[ $? -ne ]]; then
/usr/local/nginx/sbin/nginx
if [[ $? -ne ]]; then
service keepalived stop
fi
fi

备用服务器配置文件

global_defs {
router_id NodeB
}
vrrp_script check_run{
script "/etc/keepalived/check_nginx.sh"
interval
weight
}
vrrp_instance VI_1 {
state BACKUP #设置为备服务器
interface eth0 #监测网络接口
virtual_router_id #虚拟路由标识,主、备必须一样
priority #(主、备机取不同的优先级,主机值较大,备份机值较小,值越大优先级越高)
advert_int #VRRP Multicast广播周期秒数
nopreempt #恢复后也不抢占资源
authentication {
auth_type PASS #VRRP认证方式,主备必须一致
auth_pass 1111 #(密码)
}
track_script {
check_run
}
virtual_ipaddress {
  虚拟IP/掩码 #VRRP HA虚拟地址
}
}

3.主、备服务器启动keepalived和nginx服务

 /etc/init.d/keepalived start
/etc/init.d/nginx start

查看主服务器虚拟IP是否存在

ip addr

关闭主服务器的keepalived服务,测试虚拟IP是否切换到备用服务器上

ps:

当主备服务器都出现了VIP,可能是网络环境不支持广播方式,此时要使用单播方式

unicast_src_ip 10.205.22.185    #本机IP
unicast_peer {
10.205.22.186 #备机IP
}

keepalived实现nginx的高可用的更多相关文章

  1. nginx实现请求的负载均衡 + keepalived实现nginx的高可用

    前言 使用集群是网站解决高并发.海量数据问题的常用手段.当一台服务器的处理能力.存储空间不足时,不要企图去换更强大的服务器,对大型网站而言,不管多么强大的服务器,都满足不了网站持续增长的业务需求.这种 ...

  2. Nginx实现负载均衡 + Keepalived实现Nginx的高可用

    前言 使用集群是大中型网站解决高并发.海量数据问题的常用手段.当一台服务器的处理能力.存储空间不足时,不要企图去换更强大的服务器,对大型网站而言,不管多么强大的服务器,都满足不了网站持续增长的业务需求 ...

  3. nginx keepalive 高可用

    https://blog.csdn.net/u012410733/article/details/57078407 在网络中机器不可避免的出现单点故障,当我们使用nginx进行反向代理的时候如果出现了 ...

  4. 基于keepalived 实现VIP转移,lvs,nginx的高可用

    转自:http://www.tuicool.com/articles/eu26Vz 一.Keepalived 高可用集群的解决方案 二.VRRP的有限状态机 三.利用keepalived 实现主从VI ...

  5. Keepalived+Nginx实现高可用Web负载均衡

    1.安装编译 Nginx 所需的依赖包# yum install gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zli ...

  6. [转]搭建Keepalived+Nginx+Tomcat高可用负载均衡架构

    [原文]https://www.toutiao.com/i6591714650205716996/ 一.概述 初期的互联网企业由于业务量较小,所以一般单机部署,实现单点访问即可满足业务的需求,这也是最 ...

  7. Keepalived+Nginx实现高可用(HA)

    Keepalived+Nginx实现高可用(HA) service iptables stopchkconfig iptables offsetenforce 0/etc/selinux/config ...

  8. keepalived + nginx实现高可用

    1. Keepalived介绍 Keepalived是一个基于VRRP协议来实现的服务高可用方案,可以利用其来避免IP单点故障,类似的工具还有heartbeat.corosync.pacemaker. ...

  9. Nginx(haproxy)+keepalived+Tomcat双主高可用负载均衡

    周末的时候一个正在学Linux的朋友问我,高可用怎么玩?我和他微信了将近三个小时,把Nginx和haproxy双主高可用教给他了,今天突然想把这个给写进博客里,供给那些正在学习Linux系统的朋友们, ...

随机推荐

  1. CSS伪类:first-child与:first-of-type的异同

    CSS里关于元素匹配里面有两个非常类似却又不尽相同的选择器,伪类 :first-child 和 :first-of-type 两者在匹配方式上有很大差异,其实在一开始自己也没去注意这个细节,直到上次一 ...

  2. html常用样式

    1.小手:style="cursor: pointer;" 2.滚动条:style="height: 1oopx;overflow: auto;"; 3.文本框 ...

  3. Javascript 对象(Object)

    //声明方式 //调用 Object构造函数创建 var user = new Object(); user.name = "小白"; user.say = function () ...

  4. [SVN]TortoiseSVN工具培训3─使用基本流程和图标说明

    1.SVN的使用基本流程 注意:对于文件编辑方面,上图的编辑副本操作前建议进行Get lock操作,以防出现后续的冲突等异常报错. 2.SVN的基本图标说明

  5. 对react vd 性能的理解

    相信大家都知道react vd的性能是很好的,速度挺快的,真实dom操作很慢的,但是结果完全相反: 后来我就做了个测试,从两个方面去测试,在页面初始渲染1w条数据,react渲染耗时超过了1秒 在12 ...

  6. php中增删改查以及返回结果(一)

    虽然毕业后找的第一份正式的工作并不那么令人满意,但是在度过最初的迷茫期后,自己还是决定成为一个程序猿. 最近也是利用上班偶尔闲下来的时间,开始看书,撸代码,写一些小程序. 这两个礼拜主要的写的都是有关 ...

  7. xampp中mysql重置root密码

    1.  停止mysql:用图形化工具或者在cmd命令下输入net stop mysql,在c盘根目录下输入 2.  打开cmd,切换目录到 /xampp/mysql/bin, 运行    mysqld ...

  8. WannaCry勒索病毒卷土重来:日本本田工厂被迫关闭

    6月22日消息,前阵子WannaCry勒索病毒席卷全球,世界各地网络遭到攻击.日前,偃旗息鼓了一阵的WannaCry勒索病毒又重回人们视线,迫使一家汽车厂在日本关闭. 路透社报道,本田Sayama工厂 ...

  9. MVC:控制器名与被调用模型名称发生冲突的解决方案

    控制器名与被调用的模型名发生了冲突: 有两种解决方案: (1)将被调用的模型类名进行修改 例如: (2)对被调用的模型进行起一个别名 以上 加油ヾ(◍°∇°◍)ノ゙

  10. JSON:使用json_encode函数解析结果为Null

    1.首先,数据库中的json数据是这样的 2.仓鼠使用json_encode()函数进行解析json数据时,显示了一个NULL: 3.这时候,我们需要使用,表示在解析json之前,该json是有语法错 ...