nginx不支持主从,所以我们需要使用keepalive支持高可用。

keepalived重要知识点

在局域网内,每个主机上各安装一个keepalived,注意关闭防火墙firewalld,然后设定一个VIP(虚拟IP),主keepalived会获得授权在自己的主机上设置一个虚拟IP提供给应用层使用。

一旦此keepalived用shell脚本监测到此机器上的nginx挂掉之后,立刻kill掉自己,同时也注销VIP。

局域网内另一个keepalived感知(需关闭防火墙才能互相感知)到主keepalived挂掉,会把虚拟IP在自己所在机器上虚拟一个,此操作叫IP漂移。从而达到应用层对某个nginx挂掉无感知。

安装keepalived

yum -y update

yum -y remove keepalived

yum install keepalived –y
使用yum安装的会有一个默认配置文件模板
路径为/etc/keepalived/keepalived.conf
启动keepalived服务
systemctl start keepalived

如果是这样就是启动成功了:

如果是这样就是启动失败,要检查是否是conf文件没改正确:

keepalived配置——发送邮件设置

global_defs {
notification_email { 收件邮箱列表
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1 发件邮箱设置
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}

keepalived 配置——获取网卡名称

查看本机网卡: IP a

keepalived.conf 配置——VIP配置 (virtual IP)

! Configuration File for keepalived

global_defs {
router_id LVS_DEVEL
} vrrp_script chk_nginx {
script "/etc/keepalived/chk_nginx.sh" 监测nginx是否存活脚本,如果否,keepalived将kill掉自己
interval 2
weight -5
fall 2
rise 1
} vrrp_instance VI_1 {
state MASTER 字符串标识,可以随便写,比如backup
interface eno16777736
virtual_router_id 51
priority 100 指定keepalived的优先级,最高优先级为主,可以设置所在机器的虚拟IP,其它从keepalived则不能。
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.10.200 指定一个虚拟IP : VIP,后续做IP漂移。这个IP也是应用访问的IP
#192.168.10.210 可以设置多个虚拟IP
   } 
  track_script {
    chk_nginx 此虚拟IP检测存活对象的脚本,这里检测nginx
  } }

chk_nginx.sh脚本

A=`ps -C nginx --no-header |wc -l`     检测nginx存活数,如果是0,则是nginx已经挂掉了
if [ $A -eq 0 ] ; then
echo 'nginx server is died'
killall keepalived kill掉自己
fi

keepalived启动、停止、查看存活状态命令

systemctl start keepalived.service       启动

systemctl stop keepalived.service       停止

systemctl status keepalived.service     查看状态

nginx启动、停止、查看运行状态

cd nginx目录

./sbin/nginx -t   检查nginx.conf脚本语法是否正常

./sbin/nginx     启动

./sbin/nginx -s stop     停止      Stop 是快速关闭,不管有没有正在处理的请求。
./sbin/nginx -s quit     退出       Quit 是一个优雅的关闭方式,Nginx在退出前完成已经接受的连接请求。

./sbin/nginx -s reload   重启

ps -ef|grep nginx       查看运行状态

ps -C nginx --no-header |wc -l   查看存活数。一般情况下,2是正常数,因为一个nginx启动会有两个nginx进程?

nginx1.14.0版本高可用——keepalived双机热备的更多相关文章

  1. 【Nginx】如何基于主从模式搭建Nginx+Keepalived双机热备环境?这是最全的一篇了!!

    写在前面 最近出版了<海量数据处理与大数据技术实战>,详情可以关注 冰河技术 微信公众号,查看<我的<海量数据处理与大数据技术实战>出版啦!>一文. 也有不少小伙伴 ...

  2. Keepalived双机热备

    一,Keepalived双机热备的应用场景 1,网站流量不高,压力不大,但是对服务器的可靠性要求极其高,例如实时在线OA系统,政府部门网站系统,医院实时报医系统,公安局在线报案系统,股市后台网站系统等 ...

  3. keepalived双机热备nginx

    nginx目前是我最常用的反向代理服务,线上环境为了能更好的应对突发情况,一般会使用keepalived双机热备nginx或者使用docker跑nginx集群,keepalived是比较传统的方式,虽 ...

  4. Nginx+keepalived双机热备(主主模式)

    之前已经介绍了Nginx+Keepalived双机热备的主从模式,今天在此基础上说下主主模式的配置. 由之前的配置信息可知:master机器(master-node):103.110.98.14/19 ...

  5. Nginx+keepalived 双机热备(主主模式)

    之前已经介绍了Nginx+Keepalived双机热备的主从模式,今天在此基础上说下主主模式的配置. 由之前的配置信息可知:master机器(master-node):103.110.98.14/19 ...

  6. nginx1.14.0版本https加密配置

    修改host文件,为最后访问域名准备 C:\Windows\System32\drivers\etc host文件目录192.168.10.140 www.joyce.com 在最后添加这个自定义域名 ...

  7. Keepalived 双机热备

    使用 Keepalived 做双机热备非常简单,经常和 LVS 搭配来实现高可用负载平衡方案. 1. Master / Slave 首先准备两台测试服务器和一个虚拟IP. Server A: 192. ...

  8. keepalived双机热备,安装部署文档

    keepalived双击热备,安装部署文档: 下载目录:/apps/keepalived-1.2.7.tar.gz 1:---> yum install -y make wget 2:---&g ...

  9. nginx + keepalived 双机热备

    序 双机热备是指两台机器都在运行,但并非两台机器同时在提供服务. 当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,且切换的时间非常短. keepalived的工作原理是VRRP—— ...

随机推荐

  1. dos脚本》大神

    关于dos命令行脚本编写 dos常用命令另查 开始之前先简单说明下cmd文件和bat文件的区别:在本质上两者没有区别,都是简单的文本编码方式,都可以用记事本创建.编辑和查看.两者所用的命令行代码也是共 ...

  2. vue+element-ui实现表格编辑(增加或删除行,删除单行或删除多行)

    <template> <div class="app-container"> <div class="filter-container&qu ...

  3. Windows驱动——读书笔记《Windows驱动开发技术详解》

    =================================版权声明================================= 版权声明:原创文章 谢绝转载  请通过右侧公告中的“联系邮 ...

  4. javamail发邮件

    使用JavaMail发送一封简单邮件的步骤:(1)创建代表邮件服务器的网络连接信息的Session对象.(2)创建代表邮件内容的Message对象(3)创建Transport对象.连接服务器.发送Me ...

  5. 记一次idea启动tomcat后控制台乱码的坑

    IDEA的编码配置大致跟<IntelliJ IDEA 控制台中文乱码解决方案>一样 但是启动后依旧乱码!why? 后来想起来,之前因为在win10控制台下跑tomcat乱码,所以,改过一个 ...

  6. java数组的定义

    class ArrayDome { public static void main(String[] args) { //元素类型[] 数组名 创建一个 元素类型[元素个数或数组长度] /* 需要一个 ...

  7. C语言权威指南和书单 - 适用于所有级别

    注:点击标题免费下载电子书 所有级别 1. The C Programming Language (2nd Edition) 2. C: A Reference Manual (5th Edition ...

  8. 20175120彭宇辰 《Java程序设计》第七周学习总结

    #教材内容总结 第八章 常用实用类 一.String类 String类用来处理字符序列,在java.lang包中,程序可以直接使用String类.需要注意的是Java把String类声明为final类 ...

  9. s21day19 python笔记

    s21day19 python笔记 一.面向对象的基本知识 1.1 基本格式 # 定义类 class 类名: def 方法名(self,name): print(name) return 123 de ...

  10. java数据类型运算符类型转换

    Java基本数据类型 基本类型,或者叫做内置类型,是JAVA中不同于类的特殊类型.它们是我们编程中使用最频繁的类型,因此面试题中也总少不了它们的身影,在这篇文章中我们将从面试中常考的几个方面来回顾一下 ...