Nginx+keepalived(高可用主备模式)

环境:centos6.7

准备:两台服务器(虚拟机)、两台应用(Tomcat)、Nginx、keepalived

server1:192.168.237.128  安装上Nginx和keepalived        VIP 192.168.237.10(同网段)

server2:192.168.237.129  安装上Nginx和keepalived

安装keepalived : yum install keepalived

keepalived 配置文件路径    /etc/keepalived/keepalived.conf

1.分别开启NginxA和NginxB ,使两台Nginx都能分发请求至TA、TB

keepalivedA配置文件

! Configuration File for keepalived

global_defs {
router_id 192.168.237.128
} vrrp_script chk_nginx {
script "/operation/nginx_check.sh"
interval 5
weight -5
} vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 110
authentication {
auth_type PASS
auth_pass 1111
} virtual_ipaddress {
192.168.237.10
} track_script {
chk_nginx
}
}

启动keepalivedA : service keepalived start;启动成功keepalivedA后查看 ip addr     keepalived日志路径  /var/log/messages

 keepalivedB文件配置

! Configuration File for keepalived

global_defs {
router_id 192.168.237.129
} vrrp_script chk_nginx {
script "/operation/nginx_check.sh"
interval 5
weight -5
} vrrp_instance VI_1 {
state BACKUP #备机
interface eth0
virtual_router_id 51
priority 100 #优先级 小于主机
authentication {
auth_type PASS
auth_pass 1111
} virtual_ipaddress {
192.168.237.10
} track_script {
chk_nginx
}
}

检测Shell脚本 nginx_check.sh

#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi

启动keepalivedA:根据日志可知,配置生效 检测脚本已生效

 启动keepalivedB:根据日志可知,配置生效 检测脚本已生效

停止主机MASTER的nginxA,根据监控日志可知keepalivedA已停止,KA绑定的VIP自动移除;备机自动转换为MAster,绑定VIP,接替主机正常工作

 重新启动NA和KA,NA重新恢复工作,充当MASTER,NB则转换为备机

至此,Nginx+keepalived的主从高可用配置已经演示完成。

总结 <<<<<<<<<<配置过程遇到的问题以及解决方案>>>>>>>>>>>

问题1:Process [42305] didn't respond to SIGTERM  启动keepalived出现此报错     解决方案 :interval 5 调整检测脚本间隔时间 -----相应调大

问题2:

 解决方案 : 关闭防火墙  service iptables stop

问题3:一般防火墙是开启的,如何解决问题二?

解决方案:防火墙设置开放VRRP协议

vim  /etc/sysconfig/iptables

-A INPUT -i eth0 -d 224.0.0.0/8 -p vrrp -j ACCEPT
-A OUTPUT -o eth0 -d 224.0.0.0/8 -p vrrp -j ACCEPT

问题4:运行检测脚本报错 /bin/bash^M: bad interpreter   解决方案:检测脚本更改为linux环境编码

Nginx+keepalived(高可用主备模式)的更多相关文章

  1. Nginx知多少系列之(十四)Linux下.NET Core项目Nginx+Keepalived高可用(主从模式)

    目录 1.前言 2.安装 3.配置文件详解 4.工作原理 5.Linux下托管.NET Core项目 6.Linux下.NET Core项目负载均衡 7.负载均衡策略 8.加权轮询(round rob ...

  2. Rabbitmq+Nginx+keepalived高可用热备

    摘自: http://www.cnblogs.com/wangyichen/p/4917241.html 公司两台文件服务器要做高可用,避免单点故障,故采用keepalived实现,其中一台宕机,依靠 ...

  3. keepalived工作原理和配置说明 腾讯云VPC内通过keepalived搭建高可用主备集群

    keepalived工作原理和配置说明 腾讯云VPC内通过keepalived搭建高可用主备集群 内网路由都用mac地址 一个mac地址绑定多个ip一个网卡只能一个mac地址,而且mac地址无法改,但 ...

  4. Nginx+keepalived(高可用双主模式)

    Nginx+keepalived(高可用双主模式) tips:前面已经介绍了nginx+keepalived高可用主从模式,今天补充下高可用的双主模式,均可以作为主机使用 server1:192.16 ...

  5. Nginx入门篇(七)之Nginx+keepalived高可用集群

    一.keepalived介绍 keepalived软件最开始是转为负载均衡软件LVS而设计,用来管理和监控LVS集群系统中各个服务节点的状态,后来又加入了可实现高可用的VRRP功能.所以Keepali ...

  6. nginx Keepalived高可用集群

    一.Keepalived高可用 1.简介 Keepalived软件起初是专为LvS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能.因此, ...

  7. Nginx+Keepalived高可用集群应用实践

    Nginx+Keepalived高可用集群应用实践 1.Keepalived高可用软件 1.1 Keepalived服务的三个重要功能 1.1.1管理LVS负载均衡软件 早期的LVS软件,需要通过命令 ...

  8. 使用Ansible实现nginx+keepalived高可用负载均衡自动化部署

    本篇文章记录通过Ansible自动化部署nginx的负载均衡高可用,前端代理使用nginx+keepalived,端web server使用3台nginx用于负载效果的体现,结构图如下: 部署前准备工 ...

  9. nginx+keepalived 高可用方案

    nginx+keepalived 高可用方案 准备工作 192.168.157.11 192.168.157.12 安装nginx 跟新yum源文件 rpm -ivh http://nginx.org ...

随机推荐

  1. Glide缓存流程

    本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/cPLkefpEb3w12-uoiqzTig作者:连凌能 Android上图片加载的解决方案有多 ...

  2. ubuntu18.04 安装 flameshot截图工具

    安装flameshot:https://github.com/lupoDharkael/flameshot sudo apt-get install flameshot 然后设置一个快捷键,设置> ...

  3. Gerrit常见命令及最佳实践

    概述 本文记录了笔者在使用Gerrit(一种免费.开放源代码的代码审查软件)过程中的一些微小的经验,在这里做个简单的分享. 克隆工程 git clone ssh://tusi@xx.xx.cn:294 ...

  4. Redis在Window下的安装部署

    一.下载 由于redis官方不支持windows,所以需要在github上下载window的版本:下载地址.redis约定版次版本号(即第一个小数点后的数字)为偶数的版本是稳定版本(如2.8,3.0) ...

  5. Python爬虫,你是否真的了解它?

    程序员有时候很难和外行人讲明白自己的工作是什么,甚至有些时候,跟同行的人讲清楚“你是干什么的”也很困难.比如我自己,就对Daivd在搞的语义网一头雾水.所以我打算写一篇博客,讲一下“爬虫工程师”的工作 ...

  6. 介绍Dynamics 365 Customer Engagement中的备用键(alternate key)

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  7. Data Management Technology(1) -- Introduction

    1.Database concepts (1)Data & Information Information Is any kind of event that affects the stat ...

  8. 20个常用的JavaScript字符串方法

    摘要: 玩转JS字符串. 原文:JS 前20个常用字符串方法及使用方式 译者:前端小智 Fundebug经授权转载,版权归原作者所有. 本文主要介绍一些最常用的JS字符串函数. 1. charAt(x ...

  9. django升级2.1python升级3.7时出现的错误:"trying to load '%s': %s" % (entry[1], e) django.template.library.InvalidTemplateLibrary:

    django升级2.1python升级3.7时出现如下的错误: "trying to load '%s': %s" % (entry[1], e) django.template. ...

  10. 如何通过RMAN使用传输表空间迁移到不同的Endian平台 (Doc ID 371556.1)

    How to Migrate to different Endian Platform Using Transportable Tablespaces With RMAN (Doc ID 371556 ...