【Nginx <三>⭐️⭐️⭐️】Nginx 负载均衡使用

news/2024/10/11 9:22:57/

目录

👋前言

👀一、 负载均衡概述

🌱二、项目模拟

        2.1 环境准备

        2.2 启动多个服务器

        2.3 配置 Nginx 

        2.4  测试配置

💞️三、章末


👋前言

        小伙伴们大家好,前不久开始学习了 Nginx 的使用,在本地安装并且调试了服务器,以及初步学习了 Nginx 的代理功能,接着再来看下 Nginx 的另一大功能-负载均衡,之前的文章连接如下:

【Nginx <二>⭐️⭐️】Nginx 的反向代理使用-CSDN博客

👀一、 负载均衡概述

        负载均衡是指将流量分散到多个服务器上的技术,使得每台服务器都能够有效的处理负载,避免某台服务器过载导致不可用。

        如下简单的例子,比如某网站每天都会有大量用户访问,为了应对这种高流量的情况,可以使用负载均衡技术确保网站的稳定运行,设置一个负载均衡器,位于用户和后端服务器之间,当用户发送请求时,首先到达负载均衡器,负载均衡器根据指定的策略将用户请求分发给后端服务器集群中的某一台,后端服务器处理请求后生成相应数据返回给负载均衡器,负载均衡器将响应返回给用户,大概的流程如下(手拙,见谅):

🌱二、项目模拟

        2.1 环境准备

        需要提前准备好一个可以运行的 Springboot 项目,简单写个接口用来测试请求即可

        本地使用的是上篇文章中创建过的用于反向代理测试的项目,测试接口如下:服务器收到请求后会在控制台打印出当前启动占用的端口号,然后返回成功信息提示

        2.2 启动多个服务器

        本地需要部署多个服务器来模拟集群,通过简单的修改下已有项目启动占用的端口号实现即可

        2.2.1 启动第一台服务器

         比较简单,在配置文件中指定端口号以后,直接启动项目即可,占用的端口号即为配置文件中的端口号,启动后的控制台也会打印出使用的端口号,如下

         2.2.2 配置第二台服务器

        还是使用相同的项目,只不过指定另外一个端口号,步骤如下:

        注:指定端口号的命令如下:端口号可以自定义,但是不能是已经被占用的

-Dserver.port=8082

         2.2.3 启动第二台服务器

        快捷启动栏上选中为刚刚创建的启动类,点击运行即可,结果如下:

        注:本地使用的 services 快捷工具栏配置步骤可以参考这个 up 的文章,这里不做过多赘述,步骤很简单

IDEA显示service服务_idea service-CSDN博客

        

        2.3 配置 Nginx 

        修改 nginx 配置文件,使用 upstream 属性定义负载均衡的后端服务器

        注:修改配置文件保存后需要重新启动 Nginx 服务器

这里的配置内容如下:

        使用了 location 指令来处理所有匹配的请求。通过 proxy_pass 指令,将请求转发给名为 "httpds" 的 upstream 属性,Nginx 将根据其负载均衡策略将请求分发给其中的一台服务器。

        2.4  测试配置

        访问我们暴露出来的接口,多刷新几次,模拟多流量,看下控制台,发现 Nginx 服务器确实将请求打到不同的服务器上了

💞️三、章末

        从最后的结果来看,Nginx 默认的配置下,会将请求均衡的分配到每台服务器上,不止如此,还可以通过修改配置指定 分配优先级,涉及的服务器不可用的话相应的处理方法,备份服务器等等,当然这些就看后面有时间的话再更了。

        文章到这里就结束了~


http://www.ppmy.cn/news/1464041.html

相关文章

docker image prune -f 命令什么用途

docker image prune -f 命令用于清理系统中未被使用的 Docker 镜像。具体来说,它会删除那些未被任何容器使用的悬空镜像(dangling images),从而释放磁盘空间。 以下是 docker image prune -f 命令的具体用途和作用: …

mac安装的VMware虚拟机进行桥接模式配置

1、先进行网络适配器选择,选择桥接模式 2、点击网络适配器 设置... 3、选择WiFi(我使用的是WiFi,所以选择这个),注意看右边的信息:IP和子网掩码,后续配置虚拟机的ifcfg-ens文件会用到 4、编辑if…

贪心算法[1]

首先用最最最经典的部分背包问题来引入贪心的思想。 由题意可知我们需要挑选出价值最大的物品放入背包&#xff0c;价值即单位价值。 我们需要计算出每一堆金币中单位价值。金币的属性涉及两个特征&#xff0c;重量和价值。 所以我们使用结构体。 上代码。 #include <i…

1.每日设计模式-理论

目录 一、什么是设计模式 二、设计原则 三、设计模式的种类 代码地址&#xff1a;patterns: 每日设计模式 一、什么是设计模式 软件设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结&#xff0c;使用设计模式是为了可重用代码…

VSCode开发Python-Django入门

一、安装配置Python环境及配置Python环境变量 1、python安装包安装后&#xff0c;需要注意pip.exe和pip3.exe的安装&#xff1b; 2、环境变量需要配置两个目录&#xff1b; 3、验证python是否安装成功 通过cmd命令执行&#xff1a;python --version 查看python版本&#xff…

【全开源】赛事报名系统源码(Fastadmin+ThinkPHP和Uniapp)

基于FastadminThinkPHP和Uniapp开发的赛事报名系统&#xff0c;包含个人报名和团队报名、成绩查询、成绩证书等。 构建高效便捷的赛事参与平台 一、引言&#xff1a;赛事报名系统的重要性 在举办各类赛事时&#xff0c;一个高效便捷的报名系统对于组织者和参与者来说都至关重…

初学C语言100题:经典例题节选(源码分享)

1.任意从键盘输入三条边的长a,b,c,判断三边是否能构成三角形&#xff0c;若构成三角形则进一步判断该三角形是 等腰三角形&#xff0c;等边三角形&#xff0c;一般三角形 #include <stdio.h> int main() {int a, b, c;//定义三条边变量printf("请输入三条边\n"…

C语言 数组—— 一维数组下标越界问题分析

目录 数组元素的访问 一维数组元素的越界访问 二维数组元素的越界访问 小结 数组元素的访问 访问数组元素时&#xff0c; 下标越界 是大忌&#xff01;  编译器通常不检查下标越界&#xff0c;导致程序运行时错误  下标越界&#xff0c;将访问数组以外的空间  …