Nginx(六):配置nginx高可用集群

我们知道在我们使用nginx代理多态tomcat服务器时,如果某台tomcat服务器发生宕机,那么nginx的分配机制可以自动将其剔除。但是如果发生了nginx的宕机状况,又该如何解决呢。
在这里插入图片描述

1、配置高可用的集群

1.1、什么是高可用
高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。

假设系统一直能够提供服务,我们说系统的可用性是100%。

如果系统每运行100个时间单位,会有1个时间单位无法提供服务,我们说系统的可用性是99%。

很多公司的高可用目标是4个9,也就是99.99%,这就意味着,系统的年停机时间为8.76个小时。

百度的搜索首页,是业内公认高可用保障非常出色的系统,甚至人们会通过http://www.baidu.com 能不能访问来判断“网络的连通性”,百度高可用的服务让人留下啦“网络通畅,百度就能访问”,“百度打不开,应该是网络连不上”的印象,这其实是对百度HA最高的褒奖。
1.2、通过keepalived实现高可用
Nginx 负载均衡实现高可用,需要借助Keepalived地址漂移功能。
将keepalived 中的vip作为nginx负载均衡的监听地址,并且域名绑定的也是虚拟ip(vip)的地址。
在这里插入图片描述
1.需要两台nginx服务器
2.需要keepalived软件
3.需要虚拟ip地址

2、配置高可用的集群实例

2.1、准备工作

  • 需要两台服务器。
  • 在两台服务器安装nginx。
  • 在两台服务器安装keepalived。

2.2、keepalived的安装

  1. 使用yum命令进行安装:
yum install keepalived -y

2.安装完成后在/etc目录中会生成keepalived目录,有文件keepalived.conf
在这里插入图片描述

2.2.1修改/etc/keepalived/keepalivec.conf 配置文件

vrrp_instance VI_1 {
global_defs {notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.17.129
smtp_connect_timeout 30
router_id LVS_DEVEL
}vrrp_script chk_http_port {script "/usr/local/src/nginx_check.sh"interval 2	#(检测脚本执行的间隔)	weight 2		}		vrrp_instance VI_1 {		state BACKUP	# 备份服务器上将 MASTER 改为 BACKUP	interface ens33	//网卡	virtual_router_id 51   # 主、备机的 virtual_router_id 必须相同	priority 90	# 主、备机取不同的优先级,主机值较大,备份机值较小	advert_int 1		
15		authentication {
auth_type PASS
auth_pass 1111
}virtual_ipaddress {
192.168.17.50 // VRRP H 虚拟地址
}
}

2.3、在/usr/local/src 添加检测脚本

#!/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

2.4、最终测试
1)在浏览器地址栏输入 虚拟 ip 地址 192.168.17.50
在这里插入图片描述
2)把主服务器(192.168.17.129)nginx 和 keepalived 停止,再输入 192.168.17.50
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/535918.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MIP开发教程(一) MIP-CLI工具安装与环境部署

依赖安装 安装 MIP-CLI 创建开发文件结构 1. 依赖安装 MIP-CLI 使用 NPM 安装,依赖 node 环境: node 安装-windowsnode 安装-mac MIP-CLI 开发组件需要 git: git 安装-windowsgit 安装-mac 2. 安装 MIP-CLI MIP-CLI:mip 开…

JAVA知识基础(八):继承

1.概述 1.1、继承的由来 至于由来简单一句话:多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为。 继承描述的是事物之间的所属关系,这种关系是 is-a 的关系。 1.2、继承的定义 …

MIP 2016年终总结

MIP 项目组成立至今已经有一年多的时间,在过去的一年里,感谢各位的关注。 1. MIP JS 迭代 MIP JS 运行环境是 MIP 页面和 MIP 组件运行的基石。在 2016 年 4 月,MIP JS 发布了 mipmain-v0.0.1.js, 随后经过多次迭代,在 2016 年 …

JAVA知识基础(九):this、super 关键字总结

1.this关键字 this有三种常见用法 1.this调用本类中的属性,也就是类中的成员变量 2.this调用本类中的其他方法 3.this调用本类中的其他构造方法,调用时要放在构造方法的首行。 2.super关键字 在java里面,对于super关键字通常有两种用法 …

向MIP开源项目提交Issues

Issues 是 GitHub 管理需求,讨论技术方案的方式,附:官方解释。MIP 是在 GitHub 上的开源项目,也使用 Issues 来做任务管理。 一、Issues 在 MIP 项目中的应用 MIP 项目中的 Issues 主要有两种用法: 1. * 记录 bug,…

Nginx(七):nginx原理解析

前面我们讲到了nginx的反向代理、负载均衡、动静分离以及高可用,本篇我们来了解一下nginx的原理,看一下nginx是怎么执行的。 1、mater和worker 2、worker是如何进行工作的 3、相关问题 3.1、一个 master 和多个 woker 有好处 (1&#xff0…

为什么MIP-Cache存在

在去年十月的一篇 博客文章 提到 MIP 加速器是由 MIP-HTML, MIP-JS 和 MIP-Cache 三个模块共同产生加速效果的。MIP-HTML 和 MIP-JS 都是开源的,在 GitHub 上可以访问。但 MIP-Cache 是百度提供的,所有从百度搜索结果页打开的页面都是 MIP-Cache 的页面。…

JAVA知识基础(十):多态

1.概述 1.1多态的定义 多态是同一个行为具有多个不同表现形式或形态的能力。 多态就是同一个接口,使用不同的实例而执行不同操作。 多态性是对象多种表现形式的体现。 1.2多态的优点 消除类型之间的耦合关系可替换性可扩充性接口性灵活性简化性 1.3多态存在的三个…

MIP技术交流分享(3月9日)

3月9日上周四下午,MIP 团队工程师与去哪儿酒店云、众荟的 Web 前端工程师进行了一次面对面的技术交流。 在这次交流中,MIP 工程师主要分享了 MIP 技术原理,MIP 加速原理,以及 MIP 为开发者提供的工具集。去哪儿的工程师也提出了通…

JAVA知识基础(十一):异常

1.异常的概念 简单说就是不正常运行,最终导致JVM的非正常停止。 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。 异常指的并不是语法错误,语法错了,编译不…

SpringBoot基础篇(一):Spring Boot入门

我们今天开始对SpringBoot的学习,本篇主要是Spring Boot的入门部分。 1、SpringBoot简介 引用SpringBoot在百度百科中的含义: Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使…

SpringBoot基础篇(二):HelloWorld细节探究

1、场景启动器 1.1依赖 <!--Hello World项目的父工程是org.springframework.boot--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.1.RELEASE</versio…

MIP 与 AMP 合作进展(3月7日)

“到目前为止&#xff0c;全网通过 MIP 校验的网页已超10亿。除了代码和缓存&#xff0c; MIP 还想做更多来改善用户体验移动页面。” 3月7日&#xff0c;MIP 项目负责人在首次 AMP CONF 上发言。 那么 MIP 和 AMP 的关系是什么呢&#xff1f; AMP 是一个开源性项目&#xff…

SpringBoot番外篇(一):使用Spring Initializer快速创建Spring Boot项目(IDEA版)

IDE都支持使用Spring的项目创建向导快速创建一个Spring Boot项目&#xff1b; 选择我们需要的模块&#xff1b;向导会联网创建Spring Boot项目&#xff1b; ps:需要联网 1、创建新项目时选择Spring Initializ&#xff0c;选择好java版本&#xff0c;点击next。r 2、填写项…

开发教程(四) MIP组件平台使用说明

组件审核平台用于上传 MIP 组件。经过自动校验之后&#xff0c;提交审核&#xff0c;通过审核的组件会定时推送到线上&#xff0c;供网站使用。 平台地址&#xff1a;https://www.mipengine.org/platform/ 1. 使用说明 MIP 组件审核平台用于提交开发完成的组件&#xff0c;如…

MIP 技术交流分享(3月15日)

3月15日下午&#xff0c;MIP 团队工程师与58赶集的 Web 前端工程师进行了一次面对面的技术交流。 在这次交流中&#xff0c;MIP 工程师主要分享了 MIP 技术原理&#xff0c;MIP 加速原理&#xff0c;以及 MIP 为开发者提供的工具集。 58赶集的工程师提出了以下问题&#xff1a…

Redis(零):背景

什么是NoSQL&#xff0c;什么是Redis&#xff0c;我们在了解这个系列之前&#xff0c;先来看一下Redis是从何而来&#xff1f;Why redis is needed? 1、单机MySQL年代 在最早的单机MySQL年代&#xff0c;存在着访问量小&#xff0c;单个数据库等特点。 但是特有着众多的缺…

Redis(一):什么是NoSQL与NoSQL分类

1、什么是NoSQL NoSQL Not only SQL (不仅是SQL)&#xff0c;即泛指非关系型数据库。随着Web2.0时代诞生&#xff01;NoSQL在当今大数据的环境下发展十分迅速&#xff01; NoSQL 是一项全新的数据库革命性运动&#xff0c;早期就有人提出&#xff0c;发展至2009年趋势越发高涨…

MIP 内容声明

从搜索结果页点出的 MIP 页面&#xff0c;其页面上的任何内容&#xff08;包括但不限于广告、在线咨询、统计等组件&#xff09;均视为在原站点上的投放和使用。 MIP &#xff08;Mobile Instant Pages - 移动网页加速器&#xff09;, 是一套应用于移动网页的开放性技术标准。…

Redis(二):Redis入门与性能测试

1、Redis概述 Redis是什么&#xff1a; Redis&#xff08;Remote Dictionary Server )&#xff0c;即远程字典服务&#xff0c;是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API。 免费开源&#xf…