当前位置: 首页 > news >正文

nginx负载均衡(轮询与权重)

文章目录

  • 1. nginx的介绍
  • 2. nginx使用场景
  • 3. nginx在windows的下载与安装
  • 4. nginx的简单使用
  • 5. nginx进行轮询测试
  • 6. nginx进行权重测试
  • 7. 总结

1. nginx的介绍

Nginx(engine x)是一个高性能的HTTP和反向代理web服务器,同时也是一个开源的、高性能的HTTP和反向代理服务器、IMAP/POP3/SMTP代理服务器。它最初由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发,并以类BSD许可证的形式发布。Nginx因其稳定性、丰富的功能集、简单的配置文件和低系统资源消耗而闻名。以下是Nginx的主要特点和用途:

主要特点

  • 高性能:Nginx采用异步非阻塞的事件处理模型,能够处理高并发连接,支持高达50,000个并发连接数。
  • 轻量级:Nginx具有轻量级的设计,占用的内存和CPU资源相对较少。
  • 高可靠性:Nginx提供了丰富的错误处理机制,能够在高负载下稳定运行。
  • 高度模块化:Nginx的设计高度模块化,模块编写简单,易于扩展和定制。
  • 配置简单:Nginx的配置文件结构清晰,采用嵌套块结构,易于理解和维护。

主要用途

  • Web服务器:Nginx可以作为独立的Web服务器,处理HTTP请求并返回响应。
  • 反向代理:Nginx可以作为反向代理服务器,将客户端的请求转发到后端的应用服务器,隐藏真实的后端服务器,提升安全性和性能。
  • 负载均衡:Nginx支持多种负载均衡算法,如轮询、最小连接数等,可以将请求均衡地分发到多个后端服务器上,提高系统的整体性能和可用性。
  • 邮件代理:Nginx支持IMAP、POP3和SMTP协议,可以作为邮件代理服务器,路由、过滤和传递电子邮件。
  • 动态内容服务:Nginx可以与各种后端应用服务器集成,如PHP、Node.js、Python等,实现动态内容的处理和传递。
  • HTTPS服务:Nginx支持SSL/TLS协议,可以提供安全的HTTPS服务,保护用户数据在传输过程中的安全。
  • 缓存加速:Nginx可以使用内存、硬盘或SSD等作为缓存存储空间,缓存静态内容和动态内容,减少服务器的负载,提高网站的访问速度。

2. nginx使用场景

Nginx作为一款高性能的HTTP和反向代理web服务器,其使用场景非常广泛。以下是Nginx的主要使用场景

  1. 静态文件服务
    概述:Nginx在提供静态资源服务方面效率很高,可以快速响应大量的静态请求,如CSS、JavaScript、图片、视频等文件,从而减轻其他动态服务器的负担。
    优势:Nginx对静态文件的处理非常高效,因为它直接从磁盘读取文件并通过网络发送给客户端,无需经过复杂的处理流程。
  2. 反向代理和负载均衡
    反向代理:Nginx可以作为反向代理服务器,将客户端的请求转发到后端的应用服务器上,并返回处理结果给客户端。这种机制隐藏了真实的后端服务器,提高了系统的安全性。
    负载均衡:Nginx支持多种负载均衡算法,如轮询、最少连接数、IP哈希等,可以根据后端服务器的负载情况动态地分配请求,提高系统的整体性能和可用性。
  3. 缓存服务器
    概述:Nginx可以配置为缓存服务器,缓存一些响应结果,如静态文件、数据库查询结果等,以减少对后端服务器的请求次数,降低后端服务器的负载,提高数据的访问速度。
    优势:缓存机制可以显著提高网站的访问速度,尤其是在高并发场景下,能够有效缓解后端服务器的压力。
  4. SSL加速
    概述:Nginx支持HTTPS协议,可以通过SSL/TLS加密技术保护数据传输的安全性。同时,Nginx还提供了SSL加速功能,可以提高HTTPS访问的性能,减少SSL负载压力。
    优势:SSL加速功能使得Nginx在处理HTTPS请求时更加高效,能够为用户提供更加安全的访问体验。
  5. WebSocket支持
    概述:Nginx也支持WebSocket协议,可以用于实现实时通信应用程序。WebSocket协议允许服务器和客户端之间建立持久连接,并通过该连接进行双向通信。
    应用:WebSocket在实时通信、在线游戏、实时数据推送等领域有广泛的应用。
  6. 访问控制和安全
    概述:Nginx提供了丰富的访问控制功能,如基于IP地址的访问限制、基于用户名的认证等,可以有效保护Web应用程序和服务器的安全。
    优势:通过合理的访问控制策略,Nginx可以防止非法访问和恶意攻击,提高系统的安全性。
  7. 动静分离
    概述:为了提高网站的解析速度和降低服务器的压力,Nginx可以实现动静分离。即将动态页面和静态页面由不同的服务器解析,或者通过Nginx将动态请求和静态请求分开处理。
    优势:动静分离可以显著提高网站的访问速度和系统的整体性能。

3. nginx在windows的下载与安装

nginx下载
在这里插入图片描述
下载下来,直接本地解压就行了
在这里插入图片描述
启动后可能会闪退,很正常,打开任务管理器,这里存在就说明启动了
在这里插入图片描述
访问localhost:80就可以了
在这里插入图片描述

4. nginx的简单使用

打开nginx目录中的html我们创建两个文件夹,然后在其中创建index.html

在这里插入图片描述
在这里插入图片描述
one中的index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>One</title>
</head>
<body><h1>one!!!!</h1>
</body>
</html>

two中的index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Two</title>
</head>
<body><h1>two!!!!</h1>
</body>
</html>

打开nginx中conf文件夹下的nginx.conf配置一下(加上就行)

server {listen  8098;server_name  localhost;location / {root   html/one;index  index.html index.htm;}}server {listen  8097;server_name  localhost;location / {root   html/two;index  index.html index.htm;}}

随后就能访问了
在这里插入图片描述
在这里插入图片描述

5. nginx进行轮询测试

我们在nginx.conf中添加其他语句

upstream  backServer{server 127.0.0.1:8098;server 127.0.0.1:8097;
}
server {listen  8088;server_name  localhost;location / {proxy_pass http://backServer;}
}

重启nginx
在任务管理器里面结束nginx的任务,再启动
然后我们访问localhost:8088
一直刷新一下就会看到,两个界面进行轮流访问!!!

6. nginx进行权重测试

修改配置,其他不变

upstream  backServer{server 127.0.0.1:8098 weight=2;server 127.0.0.1:8097 weight=1;
}

再次重启
进行访问localhost:8088
我们会发现one界面的访问概率比two界面更高

7. 总结

我们简单学习了一下nginx的windows安装和简单的轮询与负载的使用。

欢迎批评指正!!!!


在这里插入图片描述

相关文章:

nginx负载均衡(轮询与权重)

文章目录 1. nginx的介绍2. nginx使用场景3. nginx在windows的下载与安装4. nginx的简单使用5. nginx进行轮询测试6. nginx进行权重测试7. 总结 1. nginx的介绍 Nginx&#xff08;engine x&#xff09;是一个高性能的HTTP和反向代理web服务器&#xff0c;同时也是一个开源的、…...

【计算机网络】网络通信中的端口号

文章目录 一、引入端口号二、端口号的作用三、端口号的确定 在TCP/IP协议中&#xff0c;传输层有两个重要的协议&#xff1a;TCP&#xff08;传输控制协议&#xff09;和UDP&#xff08;用户数据报协议&#xff09;。TCP用于提供可靠的数据传输&#xff0c;而UDP则适合用于广播…...

Python 解析 JSON 数据

1、有如下 JSON 数据&#xff0c;存放在 data.json 文件&#xff1a; [{"id":1, "name": "小王", "gender": "male", "score": 96.8}, {"id":2, "name": "小婷", "gender&qu…...

利用LlamaIndex构建ARG本地知识库

文章目录 1. 环境准备2. 启用诊断日志3. 配置本地模型4. 配置本地向量模型5. LlamaIndex全局配置6. 创建 PGVectorStore7. 从数据库加载数据8. 文本分割器: SpacyTextSplitter9. 配置管道10. 创建向量存储索引11 .指定响应模式&#xff0c;以及启用流式响应 在现代的人工智能应…...

PCM的缺点

PCM的主要缺点包括需要较大的‌数据传输带宽和‌存储空间&#xff0c;导致无法实现‌高压缩比&#xff0c;相对较低的‌数据压缩效率。‌‌ PCM&#xff08;脉冲编码调制&#xff09;作为一种无损编码技术&#xff0c;虽然能够保留原始信号的完整性&#xff0c;适用于需要高保…...

【C语言】(指针系列四)回调函数+qsort函数

一、回调函数 回调函数就是通过函数指针调用的函数 如果你把函数的指针作为参数传递给另外一个函数&#xff0c;当这个指针被用来调用其所指向的函数时&#xff0c;被调用的函数就是回调函数。回调函数并不是一个单一的函数实现的&#xff0c;而是在某种情况下&#xff0c;编…...

全面理解tensor编程中矩阵的行和列

经常会在编程中遇到理解矩阵行和列的事情。 1、要明确无论这个张量有多少维度&#xff0c;它的矩阵乘法都只能作用于最后两个维度。 例如&#xff1a; import torcha torch.rand([64, 32, 3, 4]) b torch.rand([64, 32, 3, 4])c torch.matmul(a, b.transpose(2, 3)) # 交…...

【Kubernetes】常见面试题汇总(十)

目录 29.简述 Kubernetes 自动扩容机制&#xff1f; 30.简述 Kubernetes Service 类型&#xff1f; 31.简述 Kubernetes Service 分发后端的策略&#xff1f; 32.简述 Kubernetes Headless Service &#xff1f; 29.简述 Kubernetes 自动扩容机制&#xff1f; &#xff08;…...

CSS —— 界面布局

flexbox - 弹性盒子布局&#xff08;弹性布局&#xff09; 一维方向&#xff0c;横纵向排列。 采用flex布局的元素&#xff0c;称为 Flex 容器&#xff08;flex container&#xff09;&#xff0c;简称"容器" flex-direction 用于设置主轴方向&#xff1b;子元素默…...

SpringBoot万级并发-jemeter-Address already in use: connect

一、场景 用Jmeter压力单测接口的时候&#xff0c;发现报 Response code:Non HTTP response code: java.net.BindException Response message:Non HTTP response message: Address already in use: connect 然后我这边是wondows的电脑操作压测的&#xff0c;操作系统win10&…...

P1228 地毯填补问题

![](地毯填补问题 - 洛谷) #include<bits/stdc.h> using namespace std; #define qw dfs(zxl-1,zyl-1,zx,zy,l); #define we dfs(zxl-1,zyl,zx,zyl,l); #define er dfs(zxl,zyl-1,zxl,zy,l); #define rt dfs(zxl,zyl,zxl,zyl,l);void dfs(int x,int y,int zx,int zy,int…...

【计算机网络】UDP TCP介绍

UDP & TCP介绍 UDP报文格式报文内容介绍端口号报文长度校验和载荷 TCP报文格式初步了解TCP机制确认应答超时重传连接管理滑动窗口流量控制拥塞控制紧急传输数据推送延时应答捎带应答面向字节流异常处理心跳机制 UDP 和 TCP 的区别 UDP 报文格式 对于网络协议, 本质上就是…...

JDBC初相识

文章目录 JDBC的由来JDBC的好处 JDBC核心API的介绍JDBC会用到的包JDBC四个核心对象JDBC访问数据库的步骤 客户端操作MySQL数据库的方式 使用第三方客户端来访问MySQL&#xff1a;SQLyog、Navicat 使用MySQL自带的命令行方式 通过Java来访问MySQL数据库&#xff0c;今天要学习…...

Go语言现代web开发07 map字典

Maps are complex data types used to store key-value pairs. Each key can appear only once on the map and can be used to find the value paired with that key. The default value for the map is nil. A nil map has no keys and keys cannot be added. 映射是用于存储…...

AI工具一键制作爆火的“汉语新解“卡片!

最近出现了一种很火的新玩法“汉语新解”。 AI把一个词汇&#xff0c;以一种特殊的视角&#xff0c;用幽默、讽刺等方式重新定义&#xff0c;然后生成一张精美的卡片。 这个玩法和之前我发的的吐槽工具玩法类似&#xff0c;主打的就是一个新颖、情绪释放。 今天教大家怎么快速…...

windows检查端口占用并关闭应用

要在Windows CMD中找到占用8888端口的应用并关闭该应用&#xff0c;你可以按照以下步骤操作&#xff1a; 打开命令提示符&#xff08;CMD&#xff09;。你可以通过在搜索栏输入 cmd 或使用 Win R 快捷键&#xff0c;然后输入 cmd 并回车来打开。 查找占用8888端口的进程。在C…...

机器学习-聚类算法

机器学习-聚类算法 1.AHC2. K-means3. SC4.MCL 仅个人笔记&#xff0c;感谢点赞关注&#xff01; 1.AHC 2. K-means 3. SC 传统谱聚类&#xff1a;个人对谱聚类算法的理解以及改进 4.MCL 目前仅专注于NLP的技术学习和分享 感谢大家的关注与支持&#xff01;...

keil 中 printf重定向

int fputc(int ch, FILE *f) {HAL_UART_Transmit(&huart1, (void*)&ch, 1, 1000);return ch;} 同时勾选&#xff0c;使用微库...

yum下载软件失败:‘Could not resolve host: mirrorlist .centos .org; Unknowm error

Loaded plugins: fastestmirror, ovl Determining fastest mirrors Could not retrieve mirrorlist http://mirrorlist.centos.org/?release7&archx86_64&repoos&infracontainer error was 14: curl#6 - “Could not resolve host: mirrorlist.centos.org; Unknow…...

云轴科技ZStack 获鲲鹏应用创新大赛2024上海赛区决赛一等奖

9月13日&#xff0c;鲲鹏应用创新大赛2024上海赛区决赛成功举办。经评委专家从方案创新性、技术领先性、商业前景以及社会价值四个维度严格评审&#xff0c;云轴科技ZStack参赛作品《ZStack鲲鹏原生开发方案》荣获上海赛区企业赛——原生开发赛道&#xff08;互联网&#xff09…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量&#xff1a;setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

Vue ③-生命周期 || 脚手架

生命周期 思考&#xff1a;什么时候可以发送初始化渲染请求&#xff1f;&#xff08;越早越好&#xff09; 什么时候可以开始操作dom&#xff1f;&#xff08;至少dom得渲染出来&#xff09; Vue生命周期&#xff1a; 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...

Vue 模板语句的数据来源

&#x1f9e9; Vue 模板语句的数据来源&#xff1a;全方位解析 Vue 模板&#xff08;<template> 部分&#xff09;中的表达式、指令绑定&#xff08;如 v-bind, v-on&#xff09;和插值&#xff08;{{ }}&#xff09;都在一个特定的作用域内求值。这个作用域由当前 组件…...

Monorepo架构: Nx Cloud 扩展能力与缓存加速

借助 Nx Cloud 实现项目协同与加速构建 1 &#xff09; 缓存工作原理分析 在了解了本地缓存和远程缓存之后&#xff0c;我们来探究缓存是如何工作的。以计算文件的哈希串为例&#xff0c;若后续运行任务时文件哈希串未变&#xff0c;系统会直接使用对应的输出和制品文件。 2 …...

【若依】框架项目部署笔记

参考【SpringBoot】【Vue】项目部署_no main manifest attribute, in springboot-0.0.1-sn-CSDN博客 多一个redis安装 准备工作&#xff1a; 压缩包下载&#xff1a;http://download.redis.io/releases 1. 上传压缩包&#xff0c;并进入压缩包所在目录&#xff0c;解压到目标…...

UE5 音效系统

一.音效管理 音乐一般都是WAV,创建一个背景音乐类SoudClass,一个音效类SoundClass。所有的音乐都分为这两个类。再创建一个总音乐类&#xff0c;将上述两个作为它的子类。 接着我们创建一个音乐混合类SoundMix&#xff0c;将上述三个类翻入其中&#xff0c;通过它管理每个音乐…...