一、 背景

本文主要介绍使用 keepalive 实现 nginx 的主备高可用

实验环境:CentOS 7 64 位

二、 实验步骤

2.1   安装 Nginx 和 Keepalive 软件 (两台机器都装)

# sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
# sudo yum install -y nginx
# sudo systemctl start nginx.service
# sudo systemctl enable nginx.service
# sudo yum install keepalived -y
# sudo systemctl start keepalived.service
# sudo systemctl enable keepalived.service

2.2  编写 nginx 服务存活检测脚本(两台机器都装)

# vim /usr/bin/check_nginx_alive.sh
#!/bin/shPATH=/bin:/sbin:/usr/bin:/usr/sbinA=`ps -C nginx --no-header |wc -l`if [ $A -eq 0 ]thenecho 'nginx server is died'killall keepalived
fi
# chmod +x /usr/bin/check_nginx_alive.sh

2.3  配置 keepalive (两台机器略有差异)

# vim /etc/keepalived/keepalived.conf

机器 A

vrrp_script check_nginx_alive {script "/usr/bin/check_nginx_alive.sh"interval 3weight -10
}
global_defs {## 设置lvs的id,在一个网络内唯一router_id LVS_DEVEL
}vrrp_instance VI_1 {## 主机配置,从机为BACKUPstate MASTER## 网卡名称interface ens37virtual_router_id 51## 权重值,值越大,优先级越高,backup设置比master小,这样就能在master宕机后讲backup变为master,而master回复后就可以恢复.priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {## 同一网段虚拟IP192.168.1.100}track_script {check_nginx_alive}}virtual_server 192.168.1.100 80 {delay_loop 6lb_algo rrlb_kind NATpersistence_timeout 50protocol TCPreal_server 192.168.1.9 80 {weight 1TCP_CHECK{connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 80}}
}

机器 B

vrrp_script check_nginx_alive {script "/usr/bin/check_nginx_alive.sh"interval 3weight -10
}
global_defs {## 设置lvs的id,在一个网络内唯一router_id LVS_DEVEL
}vrrp_instance VI_1 {## 主机配置,从机为BACKUPstate BACKUP## 网卡名称interface ens37virtual_router_id 51## 权重值,值越大,优先级越高,backup设置比master小,这样就能在master宕机后讲backup变为master,而master回复后就可以恢复.priority 90advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {## 同一网段虚拟IP192.168.1.100}track_script {check_nginx_alive}}virtual_server 192.168.1.100 80 {delay_loop 6lb_algo rrlb_kind NATpersistence_timeout 50protocol TCPreal_server 192.168.1.8 80 {weight 1TCP_CHECK{connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 80}}
}

注解: 虚拟 IP 为 192.168.1.100,A 机器 IP 为 192.168.1.9,B 机器 IP 为 192.168.1.8

A 为 Master,B 为 Slave,A 优先级(100)高于 B 优先级(90),

2.4  修改 Nginx 主页,便于追溯主机(非必需,两台主机不同)

# vim /usr/share/nginx/html/index.html

机器 A

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>body {width: 35em;margin: 0 auto;font-family: Tahoma, Verdana, Arial, sans-serif;}
</style>
</head>
<body>
<h1>Welcome to nginx! @Node A </h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p><p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p>
</body>
</html>

机器 B

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>body {width: 35em;margin: 0 auto;font-family: Tahoma, Verdana, Arial, sans-serif;}
</style>
</head>
<body>
<h1>Welcome to nginx! @Node B </h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p><p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p>
</body>
</html>

2.5  重启 keepalive 生效(两台机器都执行)

# systemctl restart keepalived

2.6 结果检查

客户端访问虚拟 IP

A 机器 停止 nginx 服务
# systemctl stop nginx

再次访问虚拟地址

A 机器 重新启动 nginx ,同时重新启动 keepalived

# systemctl start nginx
# systemctl restart keepalived

再次访问虚拟 IP

本实验验证了 VIP 的自动漂移,基本实现了nginx 的主备自动切换

值得注意的是,修复失败的服务后,

         必须重启所在机器的keepalive服务,否则keepalive是无法感知到服务恢复的!!!

KeepAlive + VIP 配置高可用 Nginx 主备集群相关推荐

  1. keepalive+nginx实现负载均衡高可用_高可用、负载均衡 集群部署方案:Keepalived + Nginx + Tomcat...

    前言:初期应用较小,一般以单机部署为主,即可满足业务的需求,随着业务的不断扩大,单机部署的模式无法承载这么大的业务量,需要进行服务集群化的部署,本文主要介绍服务器Tomcat多实例部署,搭载Keepa ...

  2. HDFS High Availability(HA)高可用、单点故障、主备集群、脑裂问题、数据同步问题、HDFS HA解决方案—QJM

    HDFS High Availability(HA)高可用 1.1 High Availability背景知识 1.1.1 单点故障.高可用 单点故障(英语:single point of failu ...

  3. 高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南

    原文:http://my.oschina.net/wstone/blog/365010#OSC_h3_13 (WJW)高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南 [X] ...

  4. 从零开始搭建高可用RabbitMQ镜像模式集群

    文章目录 RabbitMQ集群模式搭建 准备工作 选取任意一个节点作为master节点, 进行文件同步, 我这里选择138作为master节点 组成集群 配置镜像队列(设置镜像队列策略) 集群配置参数 ...

  5. Linux 高可用(HA)集群之Pacemaker详解

    大纲 说明:本来我不想写这篇博文的,因为前几篇博文都有介绍pacemaker,但是我觉得还是得写一下,试想应该会有博友需要,特别是pacemaker 1.1.8(CentOS 6.4)以后,pacem ...

  6. RabbitMQ+haproxy+keeplived 高可用负载均衡+镜像集群模式_集成高性能高可用组件 Keepalived_03

    服务器IP hostname 节点说明 端口 管控台地址 账号 密码 192.168.0.115 mq-01 rabbitmq master 5672 http://192.168.0.115:156 ...

  7. ODPS主备集群双向数据复制导致主备中心网络打爆问题

    简介:ODPS主备集群双向数据复制导致主备中心网络打爆问题 1. 故障问题描述 客户现场发生了ODPS主备机房相互数据全量复制导致的主备中心网络被打爆的问题,严重影响了日常运行的ODPS任务.在ODP ...

  8. 深入浅出百亿请求高可用Redis(codis)分布式集群揭秘

    摘要:作为noSql中的kv数据库的王者,redis以其高性能,低时延,丰富的数据结构备受开发者青睐,但是由于redis在水平伸缩性上受限,如何做到能够水平扩容,同时对业务无侵入性是很多使用redis ...

  9. RabbitMQ+haproxy+keeplived 高可用负载均衡+镜像集群模式_集成负载均衡组件 Ha-Proxy_02

    服务器IP hostname 节点说明 端口 管控台地址 账号 密码 192.168.0.115 mq-01 rabbitmq master 5672 http://192.168.0.115:156 ...

最新文章

  1. 360浏览器登录_360浏览器登录统一操作系统UOS国产CPU首次实现高清视频在线播放...
  2. Activity应用场景解析
  3. Linux入门-第五周
  4. windows 创建不可见账户
  5. Python+pyplot绘制带文本标注的柱状图
  6. 用汇编的眼光看C++(之缺省模板、特化模板)
  7. SQLi LABS Less-21
  8. Rust : codewars的Product of consecutive Fib numbers
  9. FTP 连接超时解决办法
  10. C# 调用打印机驱动实现打印功能
  11. 金山词霸java接口_使用金山词霸API做翻译(c语言实现)
  12. php圆周长怎么求,圆的周长怎么求 公式是什么
  13. MGJRouter代码分析
  14. 笔记本连接RK61键机械键盘非损坏的win和alt对调,数字键失灵以及特殊字母键失灵恢复
  15. 高级语言与低级语言的区别
  16. ContentProvider介绍
  17. Latex基础命令入门
  18. 用SQL语句创建数据库和表
  19. 古人诚不欺我-南怀瑾大师
  20. css鼠标点击后取消光标焦点,光标设置透明

热门文章

  1. 电脑开机设置启动项的命令是什么
  2. 【ULINK2仿真器stm32编程下载器】---- keil无法识别问题
  3. dpdk mbuf之概念理解
  4. “曾经沧海难为水,除却巫山不是云”
  5. C盘分区太大怎么调整分区的大小?如何把盘的多余空间分到其他盘?
  6. 码云的使用教程(Windows系统下)
  7. pubg手游服务器无响应,PUBG手游黑屏闪退怎么办?黑屏闪退原因及解决方法分享...
  8. 中兴应用之星携手天翼开放平台:让APP开发更简单
  9. 华三R690服务器文档,H3C UniServer R4300服务器用户手册.docx
  10. 安装vue-cli出错:npm ERR path D:\nodeJs\node_global\node_modules\@vue\cli\node_modules\core-js-pure