Nginx集群负载均衡配置完整流程
今天,良哥带你来做一个nginx集群的负载均衡配置的完整流程。
一、准备工作
本次搭建的操作系统环境是win11,linux可配置类同。
1)首先,下载nginx。
下载地址为:http://nginx.org/en/download.html
良哥下载的是:1.24.0 版本
2)建立工作目录
下载到硬盘后解压三份,目录存放如下:
其中master为主节点,负责代理分发请求。slave1、slave2负荷提供应用服务(读者可根据需要将其更换为tomcat或java后端服务)。
二、配置集群
1)配置从机
①修改默认主页
为了查看配置效果,我们首先需要将两个nginx从机的默认主页修改一下。
进入slave1的html目录,使用文本编辑器打开index.html
添加一行内容,如下:
slave2类同,添加的内容为:
I am server: slave-2
②修改nginx.conf配置文件
进入slave1的conf目录,用记事本打开nginx.conf文件
将侦听端口改为:8081
slave2类同,
端口设置为:8082
2)配置主机
进入master主机目录,用记事本打开配置文件
在http节点中添加配置:
## 4.1)七层负载均衡(节点列表配置)upstream backend {##least_conn;server 127.0.0.1:8081;server 127.0.0.1:8082;}
在http的server节点中添加配置:
## 4.2)七层负载均衡(代理配置)location / {proxy_pass http://backend;}
三、验证效果
将三个nginx服务启起来。
打开浏览器,在地址栏输入 http:localhost 回车。
1)浏览器页面显示内容为 I am server: slave-1,说明请求被分发到了slave1的服务端上去了,如下:
2)刷新页面,浏览器内容显示 I am server: slave-2,说明请求被分发到了slave2的服务端去了,如下:
重复刷新,页面内容会在上述两个中切换!说明请求已经被轮询分发到不同的后端节点了。
四、扩展知识
1)四层负载均衡配置
四层负载均衡数据包是在底层就进行了分发,而七层负载均衡数据包则在最顶端进行分发。因此,四层负载均衡的效率比七层负载均衡的要高;但是,四层负载均衡不能识别域名只能配置IP+端口模式进行访问,而七层负载均衡配置域名访问的。
具体配置如下:
(注意:stream模块的位置,要在http模块上方,同时proxy_pass的书写方式也有不同。)
2)nginx的负载均衡策略
负载均衡策略包括三种:轮询(默认策略)、ip_hash(ip哈希策略)、least_conn(最少连接策略);配置在upstream节点中,如下:
1.轮询(默认)
每个请求按照请求时间顺序分配到不同的后端服务器,如果后端服务器挂了,则自动剔除。
此策略还可以设置:权重,指定轮询的频率,weight和访问率成正比,用于后端服务器性能不均匀的情况。
2.ip_hash
客户端ip地址被用作hash key来判断客户端请求应该发送到哪个服务器,这种方法保证了来自相同客户端的请求总是发送到相同服务器。
3.least_conn
最少连接策略,nginx会尽量不让负载繁忙的应用服务器上负载过多的请求,相反的,会把新的请求发送到比较不繁忙的服务器。
配置示例如下:
http {upstream serverlist{ip_hash;##least_conn;## 屏蔽上述两个参数即采用默认的策略:轮询server www.address1.com weight=3;// 或者ip+端口 , 不需要加入http/https前缀server www.address2.com weight=2;server www.address3.com; // 默认 weight=1}server {listen 80;location / {proxy_pass http://serverlist;}}
}
3)故障下线、备份服务、访问失败等配置
1.down
假如有一台主机是出了故障,或者下线了,要暂时移出,那可以把它标为down,表示请求是会略过这台主机的。
upstream serverlist{server www.address1.com; // 或者ip+端口 , 不需要加入http/https前缀server www.address2.com down;
}
2.backup
backup是指备份的机器,相对于备份的机器来说,其他的机器就相当于主要服务器,只要当主要服务器不可用的时候,才会用到备用服务器。
upstream serverlist{server www.address1.com; // 或者ip+端口 , 不需要加入http/https前缀server www.address2.com backup;
}
3.max_fails和fail_timeout
默认情况下,max_fails的值为1,表示的是请求失败的次数,请求1次失败就换到下台主机。另外还有一个参数是fail_timeout,表示的是请求失败的超时时间,在设定的时间内没有成功,那作为失败处理。
upstream serverlist{server www.address1.com max_fails=2; // 或者ip+端口 , 不需要加入http/https前缀server www.address2.com backup;
}
相关文章:

Nginx集群负载均衡配置完整流程
今天,良哥带你来做一个nginx集群的负载均衡配置的完整流程。 一、准备工作 本次搭建的操作系统环境是win11,linux可配置类同。 1)首先,下载nginx。 下载地址为:http://nginx.org/en/download.html 良哥下载的是&am…...

如何生成SSH服务器的ed25519公钥SHA256指纹
最近搭建ubuntu服务器,远程登录让确认指纹,研究一番搞懂了,记录一下。 1、putty 第一次登录服务器,出现提示: 让确认服务器指纹是否正确。 其中:箭头指向的 ed25519 :是一种非对称加密的签名方法…...

设计模式:抽象工厂模式(C#、JAVA、JavaScript、C++、Python、Go、PHP)
大家好!本节主要介绍设计模式中的抽象工厂模式。 简介: 抽象工厂模式,它是所有形态的工厂模式中最为抽象和最具一般性的一种形态。它用于处理当有多个抽象角色时的情况。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指…...
ocpp-远程启动(RemoteStartTransaction)、远程停止(RemoteStopTransaction)
目录 1、介绍 2、远程启动-RemoteStartTransaction 3、远程停止-RemoteStopTransaction 4、代码 4.1 OcppRechongFeign 4.2 CmdController 4.3 CmdService 4.4 RemoteStartTransactionReq 4.5 接收报文-DataAnalysisController 4.6 接收报文实现类-DataAnalysisServi…...

【网络安全】安全的系统配置
系统配置是网络安全的重要组成部分。一个不安全的系统配置可能会使网络暴露在攻击者面前,而一个安全的系统配置可以有效地防止攻击者的入侵。在本文中,我们将详细介绍如何配置一个安全的系统,包括操作系统配置,网络服务配置&#…...
conda使用一般步骤
Terminal:conda create --name myenv python3.7 如果环境不行的话 1.source /opt/anaconda3/bin/activate 2.可能是没有源 vim ~/.condarc将需要的源装上 conda clean -i将原先的源删除 3.然后再conda create即可 4.需要激活环境 conda activate numpy 5.pycharm配置…...

如何做好需求收集?方法和步骤
需求收集是理解你想要构建什么以及为什么要构建它的过程。需求收集通常被视为开发软件应用,或开发硬件产品的一部分。其重要性不言而喻。据调查显示50%以上产品在市场上失败的原因,是由于忽视了用户需求。 一、需求收集为什么会困难? 困扰项…...
SpringBoo整合WebSocket实战演练——Java入职十三天
前言 本文将介绍如何在Spring Boot应用程序中使用WebSocket实现服务端向客户端推送消息。Spring Boot和WebSocket的整合实现服务端向客户端推送消息,使得客户端能够实时接收并处理服务器发来的信息。WebSocket协议是一种双向通信的网络协议,使得客户端和服务器能够建立持久连…...

众佰诚:抖音小店的体验分什么时候更新
随着移动互联网的发展,越来越多的电商平台开始涌现,其中抖音小店作为一种新型的电商模式,受到了许多用户的欢迎。然而,对于抖音小店的体验分更新时间,很多用户并不是很清楚。本文将对此进行详细的解答。 首先ÿ…...

详解cv2.addWeighted函数【使用 OpenCV 添加(混合)两个图像-Python版本】
文章目录 简介函数原型代码示例参考资料 简介 有的时候我们需要将两张图片在alpha通道进行混合,比如深度学习数据集增强方式MixUp。OpenCV的addWeighted提供了相关操作,此篇博客将详细介绍这个函数,并给出代码示例。🚀Ƕ…...

单链表经典OJ题:反转链表
题目: 给你单链表的头节点 head ,i请你反转链表,并返回反转后的链表。 图例: 分析: 根据链表的特征,反转链表的本质便是改变节点内部的指针方向。 将原先指向下一个节点的指针进行修改,将其的…...
软考高级信息系统项目管理师系列论文六:论信息系统项目的人力资源管理
软考高级信息系统项目管理师系列论文六:论信息系统项目的人力资源管理 一、人力资源管理相关知识二、摘要三、正文四、总结一、人力资源管理相关知识 软考高级信息系统项目管理师系列之十七:项目人力资源管理二、摘要 2021年7 月,我参加了╳╳市物价局发起的“智慧物价”信息…...

Kubeadm部署k8s集群
目录 主机准备 主机配置 修改主机名(三个节点分别执行) 配置hosts(所有节点) 关闭防火墙、selinux、swap、dnsmasq(所有节点) 安装依赖包(所有节点) 系统参数设置(所有节点) 时间同步(所有节点) 配…...

YOLOv7改进:新机制,扩展DCNv3,基于DCNv2优化 | CVPR2023 InternImage
💡💡💡本文属于原创独家改进:DCNv3优势:1) 共享投射权重;2) 引入多组机制;3)采样点调制标量归一化; DCNv3 | 亲测在多个数据集实现暴力涨点; 收录: YOLOv7高阶自研专栏介绍: http://t.csdnimg.cn/tYI0c ✨✨✨前沿最新计算机顶会复现 🚀🚀🚀YOL…...

SMAP(Soil Moisture Active and Passive)数据下载
SMAP(Soil Moisture Active and Passive)数据下载 打开网站先注册登录用户 然后打开SMAP下载的网站 点击HTTPS File System进入下载页面 然后点击HDF文件下载 下载之后在HDF View里面预览...
【Huawei S5700交换机】产品介绍
产品特点 S5700系列以太网交换机,是华为公司为满足大带宽接入和以太多业务汇聚而推出的新一代绿色节能的全千兆高性能以太交换机。它基于新一代高性能硬件和华为公司统一的VRP(Versatile Routing Platform)平台,具备大容量、高可…...

华为Atlas 200I DK A2开发者套件--基础使用配置
文章目录 前言一、快速开始二、通过路由器联网三、USB相机总结 前言 Atlas 200I DK A2基础使用配置方法。准备好键鼠、显示器、网线、USB拓展器。 一、快速开始 下载最新官方Windows版本昇腾开发者套件一键制卡工具: https://ascend-repo.obs.cn-east-2.myhuaweic…...

C++DAY47
头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPushButton> #include <QLabel> #include <QLineEdit> #include <QDebug>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public…...

四边形不等式
区间dp问题,状态转移方程: dp[i][j] min( dp[i][k] dp[k1][j] w[i][j] ) //w[i][j]是从i到j的,一个定值 不随k改变,而且w的值只和i j有关,是它们的二元函数。 其中i<k<j ,初始值dp[i][i]已知。 含义&#x…...

Jmeter(四):请求默认值元件应用,正则表达式提取器元件讲解
Jmeter请求默认值元件应用 HTTP请求默认值 在公司内部进行测试的时候,一般测试环境访问的接口地址(服务器名称 或IP)、端口、协议一般都是不变的,但http请求取样器每个请求都要求写一遍 这些信息,在实际HTTP请求取样…...

深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...

《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...

优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...