Nginx的高可用集群

news2025/1/13 17:28:58

1、什么是 nginx高可用

只有一台nginx服务器时,如果nginx服务器宕机了,那么请求就无法访问。

要实现高可用,那就可以部署多台nginx服务器,下面以两台nginx服务器为例,示意图如下:

要配置nginx集群,至少需要满足一下条件: 

(1)需要两台nginx服务器
(2)需要keepalived
(3)需要虚拟ip

2、配置高可用的Nginx集群

(1)需要两台服务器 192.168.200.130和192.168.200.131


(2)在两台服务器安装nginx

(3)在两台服务器安装keepalived

 yum install keepalived -y

安装过程遇到了报错,解决方法参考:

nginx+keepalived配置踩过的坑_steven在学习的博客-CSDN博客

安装完成后查看版本信息:

 安装之后,在etc里面生成目录 keepalived,有文件 keepalived.conf

(4)完成高可用配置(主从配置)

主服务器keepalived.conf配置文件内容:

! Configuration File for 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.130
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_script chk_http_port {

  script "/usr/local/src/nginx_check.sh"
  interval 2
  weight 2
}

vrrp_instance VI_1 {
    state MAXTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.200.100
    }
}

从服务器keepalived.conf配置文件内容:

! Configuration File for 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.131
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_script chk_http_port {

  script "/usr/local/src/nginx_check.sh"
  interval 2
  weight 2
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.200.100
    }
}

在主从服务器的/usr/local/src添加检测脚本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

把两台服务器上 nginx和keepalived启动
启动 nginx:./nginx
启动 keepalived:systemctl start keepalived.service

查看keepalived进程

(5)最终测试

在浏览器地址栏输入虚拟ip地址192.168.200.100

能访问到nginx主页,说明配置是成功。

用ip a命令也可以看到,两台服务器都已经绑定了虚拟ip

把主服务器(192.168.200.130)nginx和keepalived停止,再输入192.168.200.100(虚拟ip)

 再次查看进程

进程已经不存在了

这时候再次访问虚拟ip

这时候访问的就是从服务器(192.168.200.131) 

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

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

相关文章

西部学刊杂志西部学刊杂志社西部学刊编辑部2022年第22期目录

百年党建与马克思主义中国化研究 党的纪律建设的实践、启示与创新——基于“三大纪律八项注意”的研究 武艳; 5-8 西部研究《西部学刊》投稿:cn7kantougao163.com 新疆红色资源运用现状调查研究——以南疆部分地区为例 王艺潼;努尔古扎丽阿不都克里木; 9-12…

BP神经网络对指纹识别的应用(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 在现代计算机具有强大的计算和信息处理能力的今天,指纹识别作为个人身份鉴定等领域的热点问题一直被人们长期关注着,目前也得到…

版本控制 | 一文了解什么是组件化开发,以及如何从单体架构转向组件化开发

传统开发模式中,所有代码都写在APP模块中。随着项目的发展,代码量逐渐庞大,编译时间越来越长。为了方便后续项目的开发和测试、提高编译性能,您需要了解组件化开发,以及如何利用版本控制系统从单体架构转向组件化开发。…

【Python自然语言处理】使用SVM、随机森林法、梯度法等多种方法对病人罹患癌症预测实战(超详细 附源码)

需要源码和数据集请点赞关注收藏后评论区留言私信~~~ 一、数据集背景 乳腺癌数据集是由加州大学欧文分校维护的 UCI 机器学习存储库。 数据集包含 569 个恶性和良性肿瘤细胞样本。 样本类别分布:良性357,恶性212 数据集中的前两列分别存储样本的唯一 …

Prototypical Networks for Few-shot Learning

摘要 我们为零样本分类问题提出了一个原型网络。在这里分类器必须能够被泛化到新类别(在训练集中不可见),每个新类只给出少量示例。 原型网络能够学习一个度量空间,通过计算每个类别的原型表示距离实现分类。与少样本学习近几年的…

华为机试 - 完全二叉树非叶子部分后序遍历

目录 题目描述 输入描述 输出描述 用例 题目解析 算法源码 题目描述 给定一个以顺序储存结构存储整数值的完全二叉树序列(最多1000个整数),请找出此完全二叉树的所有非叶子节点部分,然后采用后序遍历方式将此部分树&#x…

AOP事务管理(下)

Transactional注解可以设置参数。 readOnly:true只读事务,false读写事务,增删改要设为false,查询设为true。 timeout:设置超时时间单位秒,在多长时间之内事务没有提交成功就自动回滚,-1表示不设置超 时时间。 rollbac…

熬夜也要肝完的阿里内部面试官手册,吃透直接拿下大厂心仪 offer

前言 蓦然回首自己做开发已经十年了,这十年中我获得了很多,技术能力、培训、出国、大公司的经历,还有很多很好的朋友。但再仔细一想,这十年中我至少浪费了五年时间,这五年可以足够让自己成长为一个优秀的程序员&#…

ASP.NET通用版权限管理系统源码分享

ASP.NET通用版权限管理系统源码 源码分享!需要源码学习可私信我。 主要功能有:权限管理、角色管理、部门管理、用户管理、公司管理、模块管理、系统设置。 一、 权限管理 以关键字(Key)的方式来定义系统的权限,使系统…

(附源码)springboot农田灌溉设备管理系统 毕业设计 260931

题 目 springboot 农田灌溉设备管理系统 目 录 摘要 1 1 绪论 1 1.1选题的目的和意义 1 1.2研究现状 1 1.3系统开发技术的特色 1 1.4论文结构与章节安排 1 2 农田灌溉设备管理系统 系统分析 3 2.1 可行性分析 3 2.2 系统流程分析 3 2.2.1数据增加流程 3 2.3.2数据修改流程…

强的离谱!阿里人用五个模块讲明白了SpringCloud,已开源!

微服务 作为一名Java程序员如果你对微服务不了解,就会在学习或者使用的过程中觉得有点“晕”。微服务是一种面向服务的软件架构模式! 我们常说,架构设计的核心是满足降本增效。该怎么理解? 举个例子,微服务架构之所…

简单学校网页设计作业 静态HTML校园博客主页 DW大学网站模板下载 大学生简单我的学校网页作品代码 个人网页制作 学生个人网页设计作业

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

[附源码]计算机毕业设计JAVA疫苗接种管理系统

[附源码]计算机毕业设计JAVA疫苗接种管理系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybati…

AIGC的一些材料

概念和前景 先看亚马逊AWS给AIGC的定义。 AIGC 是什么_亚马逊云科技 AIGC 解决方案 它有多个模态分支,但大同小异。 Diffusion预训练成本降低6.5倍,微调硬件成本降低7倍!Colossal-AI完整开源方案低成本加速AIGC产业落地 背景 1.01亿美元融资…

Java项目:SSM电器商城系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目分为前后台,前台为普通用户登录,后台为管理员登录; 管理员角色包含以下功能: 管理员登录…

低功耗局域网通信硬件之lora——sx1262-sx1276硬件设计开发

1.lora简介 LoRa是semtech公司开发的一种低功耗局域网无线标准,其名称“LoRa”是远距离无线电(Long Range Radio),它最大特点就是在同样的功耗条件下比其他无线方式传播的距离更远,实现了低功耗和远距离的统一&#x…

浅谈ES标准的演变

ECMAScript从1997年第一版诞生依赖,经过无数人的“踩坑”和“填坑”,到现在,ES12呼之欲出。那么我们不妨讨论一下ES的发展历程,看它如何统一江湖,看它“曲折”而又令人期待的发展之路。 最近分析typescript&#xff0c…

双机互备是什么意思?双机互备就是双机热备吗?

看到不少小伙伴在问,双机互备是什么意思?双机互备就是双机热备吗?今天我们就来一起简单了解了解吧! 双机互备是什么意思?双机互备就是双机热备吗? 双机互备是指在双机热备的基础上,两个相对独…

【AI数学】余弦相似性(含python实现)

Cosine Similarity,即余弦相似度,又叫余弦相似性。是一个中学数学的概念,即用两个向量之间的夹角余弦值代表这两个向量之间的相似度。 Cosine Similarity虽然简单,但广泛应用在AI模型中,比如CLIP计算图像embedding和文…

【KCP】UDP可靠性传输

1 如何做到可靠性传输 ◼ ACK机制 ◼ 重传机制 ◼ 序号机制 3 2 1 -》2 3 1 ◼ 重排机制 2 3 1 ->3 2 1 ◼ 窗口机制 Tcp不用我们管 可靠性udp 5种机制都需要用户层处理 2 UDP与TCP,我们如何选择 3 UDP如何可靠,KCP协议在哪些方面有优势 以10%-20%…