Nginx反向代理+Keepalived实现Nginx高可用

news2024/11/14 20:36:22

Keepalived概述:
keepalived 是一个类似于 layer3, 4 & 5 交换机制的软件,也就是我们平时说的第 3 层、第 4 层和第 5层交换。 Keepalived 的作用是检测 web 服务器的状态,如果有一台 web 服务器死机,或工作出现故障,Keepalived 将检测到,并将有故障的 web 服务器从系统中剔除,当 web 服务器工作正常后 Keepalived 自动将web 服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web 服务器。

 

拓展一下Keepalived工作原理:

Layer3,4&5 工作在 IP/TCP 协议栈的 IP 层, TCP 层,及应用层,。
Layer3: Keepalived 使用 Layer3 的方式工作式时, Keepalived 会定期向服务器群中的服务器发送一个 ICMP 的数据包(既我们平时用的 Ping 程序) , 如果发现某台服务的 IP 地址没有激活,Keepalived 便报告这台服务器失效,并将它从服务器群中剔除,这种情况的典型例子是某台服务器被非法关机。 Layer3 的方式是以服务器的 IP 地址是否有效作为服务器工作正常与否的标准。
Layer4: 主要以 TCP 端口的状态来决定服务器工作正常与否。如 web server 的服务端口一般是80,如果 Keepalived 检测到 80 端口没有启动,则 Keepalived 将把这台服务器从服务器群中删除。
Layer5: Layer5 就是工作在具体的应用层了,比 Layer3,Layer4 要复杂一点,在网络上占用的带宽也要大一些。 Keepalived 将根据用户的设定检查服务器程序的运行是否正常,如果与用户的设定不相符,则 Keepalived 将把服务器从服务器群中剔除。
 

网络拓扑图:

环境准备以及规划:
Client IP: 192.168.50.24
VIP:192.168.50.50
Nginx负载均衡IP1,Keepalived MASTER节点:192.168.50.20
Nginx负载均衡IP2,Keepalived BACKUP节点:192.168.50.21
Web站点1:192.168.50.22
Web站点1:192.168.50.23

步骤一:nginx负载均衡器配置

1.安装Nginx部署可参考

(176条消息) LNMP网站框架搭建(编译安装的方式)_zhangchang3的博客-CSDN博客

2 Nginx反向代理配置部分如下

上面的upstream 后面的服务器组名abc_server ,upstream不能识别,要把下划线去掉,改为abcserver才可以,不然报错,服务起来不

 安装Keepalived:

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


2. 配置keepalived.conf,设置MASTER/BACKUP(主备)

MASTER配置:

 

备配置文件

直接远程复制 scp keepalived.conf 192.168.50.21:`pwd`,然后修改配置文件

编写Nginx检查脚本,给脚本赋执行权限

vim /etc/keepalived/nginx_check.sh

chmod 755 /etc/keepalived/nginx_check.sh

 

步骤二:节点服务器配置

192.168.50.22 和192.168.50.23yum安装http服务,做nginx调度器的节点服务器

systemctl stop firewalld 

setenforce 0

yum -y install httpd

systemctl start httpd

准备网站首页文档

echo "<h1> this is web1 test  side " > /var/www/html/index.html

echo "<h1> this is web2 test  side " > /var/www/html/index.html

步骤三:实验验证

1 在客户机中输入VIP,有负载均衡的效果

 2 关闭主调度器的nginx,同样在客户机中输入VIP访问

 

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

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

相关文章

[极客大挑战 2019]Havefun、[ACTF2020 新生赛]Include、[SUCTF 2019]EasySQL

[极客大挑战 2019]Havefun 进入环境就如下图啥都没给我查看了一下源码 直接给出了flag???尝试了一下结果是一个假的flag&#xff0c;然后我们分析源代码很容易看出我们通过GET方式给cat传一个值&#xff0c;如果cat的值为dog就输出flag&#xff0c;这很简单了我们通过get方…

京东2023年Q1财报预测:短期增速承压,收入和净利润预测被下调

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;中信证券近期发布研报维持京东&#xff08;JD&#xff09;买入评级&#xff0c;中信证券在研报中预计京东2023年第一季度的营收将达到2,383亿元/同比减少-0.6%&#xff0c;Non-GAAP净利润50.6亿元/…

AI剧本拆解,教你利用AI快速拆解剧本

AI剧本拆解是一项将影视、戏剧等剧本进行分析和优化的技术&#xff0c;可以帮助制作团队更好地规划角色、情节、场景等元素&#xff0c;并提升作品的艺术水平和观赏体验。 1、为什么要拆解剧本&#xff1f; 剧本拆解是制片人和导演的第一项工作&#xff0c;把剧本中各项要素分…

【Python入门第五十四天】Python丨NumPy ufuncs

什么是 ufuncs&#xff1f; ufuncs 指的是“通用函数”&#xff08;Universal Functions&#xff09;&#xff0c;它们是对 ndarray 对象进行操作的 NumPy 函数。 为什么要使用 ufuncs&#xff1f; ufunc 用于在 NumPy 中实现矢量化&#xff0c;这比迭代元素要快得多。 它们…

win系统jenkins搭建+tomcat启动

简介 Jenkins是一个开源软件项目&#xff0c;是基于Java开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&#xff0c;旨在提供一个开放易用的软件平台&#xff0c;使软件项目可以进行持续集成 下载war包 下载地址 (镜像安装 docker pull jenkins/jenkins:lts) …

面板数据进行熵值法

面板数据熵值法分析流程如下&#xff1a; 一、案例背景 当前有9家公司连续5年&#xff08;2018-2022年&#xff09;的财务指标数据&#xff0c;想要通过这份数据&#xff0c;确定各个财务指标的权重。熵值法根据指标离散程度确定赋权大小&#xff0c;客观公正准确度高。本次收…

python安装三方库教程:关于pip命令的一切,到底怎么用?

python安装三方库教程&#xff1a;关于pip命令的一切&#xff0c;到底怎么用&#xff1f; 一、pip设置国内源&#xff1a;1.1如何本地配置源&#xff1a;1.1.1 方法1&#xff1a;下载的时候指定地址1.1.2 方法2&#xff1a;使用pip命令生成配置文件1.1.3 方法3&#xff1a;自定…

vue---组件通信

目录 1、组件跨层级访问 &#xff08;1&#xff09;$emit &#xff08;2&#xff09;$root 、 $parent、$refs 2、依赖注入 3、透传及组件二次封装 组件间通信的三种方案&#xff1a; 1、组件跨层级访问&#xff0c;2、依赖注入,3、透传&#xff08;用于组件二次封装&…

React Hooks 钩子函数错误用法,你还在犯这些错误吗

React Hooks 常见错误 前言 本片文章主要是在写react hooks的时候&#xff0c;遇到的常见错误的写法&#xff0c;和错误。也是一个对只是的巩固和总结。 错误一 上代码&#xff1a;正确写法 function TestReactHooksError() {const [test, setTest] useState(test);useEff…

论文阅读:PVO: Panoptic Visual Odometry

全景视觉里程计、同时做全景分割和视觉里程计 连接&#xff1a;PVO: Panoptic Visual Odometry 0.Abstract 我们提出了一种新的全景视觉里程计框架PVO&#xff0c;以实现对场景运动、几何和全景分割信息的更全面的建模。我们将视觉里程计(VO)和视频全景分割(VPS)在一个统一的…

【hello Linux】进程间通信——匿名管道

目录 前言&#xff1a; 总结下上述的内容&#xff1a; 1. 进程间通信目的 2. 进程间通信的分类 1. 匿名管道 2. 匿名管道的使用 1. 匿名管道的创建 2. 使用匿名管道进行父子间通信 Linux&#x1f337; 前言&#xff1a; 进程具有独立性&#xff0c;拥有独立的数据、代码及其他…

人工智能时代来临,殊不知低代码早已出手

科普一下人工智能的等级划分&#xff0c;按照实力&#xff0c;人工智能可以分为弱人工智能(Artificial Narrow Intelligence&#xff0c;简称ANI)、强人工智能(Artificial General Intelligence简称AGI)、超人工智能(Artificial Superintelligence简称ASI)三个等级。 弱人工智能…

Windows下 批量重命名文件【bat实现】

目录 前言 一、Windows简单实现重命名 二、使用命令行和Excel实现重命名 前言 在实际应用中&#xff0c;我们经常会遇到将指定文件夹下的文件重命名&#xff0c;以便程序读写。 本文介绍了两种方式&#xff0c;都是在Windows系统中自带的重命名方式。 一、Windows简单实现…

面试题目 002

分享一位读者面试美团 java 岗位的面经。主要在考察 javamysql 算法题目 最长回文串 根据前序中序恢复二叉树 说一说 MySQL 的索引 MySQL 的索引是一种存储数据结构&#xff0c; 按照数据结构划分&#xff0c;MySQL 可以分为 B 树索引、Hash 索引、全文索引 按照 B 树的叶子…

Windows云主机崩溃了怎么办?

​  无法避免服务器崩溃已不是什么秘密&#xff0c;无论选择Windows 云主机还是 Linux 云主机。但不可否认的是&#xff0c;任何错误都可能给企业带来灾难性的后果。该怎么办?持续监控服务器是可能的解决方案之一。即便如此&#xff0c;如果服务器已经处于关闭阶段&#xff…

机器学习实战教程(十):逻辑回归

概述 逻辑回归&#xff08;Logistic Regression&#xff09;是一种用于解决二分类或多分类问题的统计学习方法。它以自变量线性组合的形式进行建模&#xff0c;并使用Sigmoid函数将结果映射到[0, 1]的值域内&#xff0c;表示样本属于某个类别的概率。 Logistic Regression是最…

6个好用的企业管理软件推荐

企业管理软件的范围很广&#xff0c;财务、人力、客户关系管理、ERP、客户体验管理等等。国内来看&#xff0c;有些企业管理软件产品能覆盖企业数字化所有部分&#xff0c;在每个领域&#xff0c;也有很突出的头部厂商&#xff0c;产品功能和服务都大幅领先于竞对&#xff0c;我…

Redis学习笔记大全

文章目录 1、redis概述和安装1.1、安装redis1.2、启动redis方式1&#xff1a;前台启动&#xff08;不推荐&#xff09;方式2&#xff1a;后端启动&#xff08;推荐&#xff09; 1.3、关闭redis1.4、进入redis命令窗口1.5、redis命令大全1.6、redis介绍相关知识 2、redis 5大数据…

PyTorch实战3:天气识别

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f366; 参考文章&#xff1a;365天深度学习训练营-第P3周&#xff1a;天气识别&#x1f356; 原作者&#xff1a;K同学啊|接辅导、项目定制 目录 一、前期准备1、导入数据2、transforms.Compose详…

JavaWeb+JSP内置对象+Session+Cookie+ 过滤器Filter+ 监听器Listener(超详细)

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;老茶icon &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开兴好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;计…