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

Nginx基于反向代理的负载均衡

一、引言从单点到集群流量分发的艺术当你的应用用户量从几百飙升到几万单台服务器很快就会成为性能瓶颈甚至面临宕机风险。此时最直接有效的解决方案就是横向扩展——部署多台服务器组成集群。但新问题随之而来客户端如何知道该访问哪一台服务器如果其中一台挂了怎么办答案就是“反向代理 负载均衡”。Nginx 完美地将这两个功能融为一体反向代理作为统一入口对外隐藏后端服务器集群。负载均衡作为智能调度员将流量合理、高效地分发给集群中的每一台服务器。本文将手把手教你配置 Nginx打造一个高性能、高可用的服务集群。核心价值掌握此技能你就能轻松应对流量洪峰告别单点故障为业务稳定保驾护航二、核心基石upstream模块在 Nginx 中负载均衡的能力由upstream上游服务器模块提供。它允许你定义一组后端服务器并指定流量分发的策略。基本语法# 在 http 块内定义 upstream backend { server backend1.example.com weight5; server backend2.example.com; server 192.0.0.1 backup; }upstream backend:backend是这个服务器组的名字后续在proxy_pass中会用到。server: 定义一个后端服务器可以是域名或IP端口。weight: 权重默认为1。权重越高接收的请求越多。backup: 标记为备份服务器。只有当所有非备份服务器都不可用时才会启用它。三、四大主流负载均衡策略详解Nginx 提供了多种算法来满足不同场景的需求。策略一轮询Round Robin - 默认策略这是最简单也最常用的策略。Nginx 会按顺序将请求依次分发给服务器列表中的每一台。upstream myapp { server 192.168.1.10:8080; server 192.168.1.11:8080; server 192.168.1.12:8080; }效果请求1 - Server1, 请求2 - Server2, 请求3 - Server3, 请求4 - Server1...策略二加权轮询Weighted Round Robin当你的服务器硬件配置不同时如一台16核两台8核可以通过权重让更强的机器承担更多流量。upstream myapp { server 192.168.1.10:8080 weight3; # 配置最强承担3份流量 server 192.168.1.11:8080 weight1; # 承担1份流量 server 192.168.1.12:8080 weight1; # 承担1份流量 }效果每5个请求中3个去Server11个去Server21个去Server3。策略三IP哈希IP Hash此策略能保证同一个客户端IP的请求始终被转发到同一台后端服务器。这在需要会话保持Session Sticky但又不想使用共享Session存储的场景下非常有用。upstream myapp { ip_hash; # 启用IP哈希 server 192.168.1.10:8080; server 192.168.1.11:8080; }注意如果后端服务器数量发生变化原有的IP映射关系会被打乱。策略四最少连接Least ConnectionsNginx 会将新请求分配给当前活跃连接数最少的服务器。这在处理长连接或请求处理时间差异较大的场景下更为公平。upstream myapp { least_conn; # 启用最少连接 server 192.168.1.10:8080; server 192.168.1.11:8080; }四、生产级完整配置示例一个健壮的负载均衡配置除了upstream还需要包含健康检查、超时设置和必要的请求头。http { # 定义上游服务器组 upstream backend_servers { # 使用加权轮询 server 192.168.1.10:8080 weight3 max_fails2 fail_timeout30s; server 192.168.1.11:8080 weight1 max_fails2 fail_timeout30s; # 备份服务器 server 192.168.1.12:8080 backup; } server { listen 80; server_name app.example.com; location / { # 反向代理到 upstream proxy_pass http://backend_servers; # 必须设置的请求头 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 超时设置 proxy_connect_timeout 5s; # 与后端建立连接的超时 proxy_send_timeout 10s; # 发送请求给后端的超时 proxy_read_timeout 10s; # 读取后端响应的超时 } } }关键参数解释max_fails2: 在fail_timeout时间内如果尝试失败达到2次则认为此服务器不可用。fail_timeout30s: 服务器被判定为不可用后的暂停服务时间30秒后会再次尝试。backup: 仅在其他所有服务器都失效时才启用用于兜底。五、高级特性被动健康检查与主动健康检查上面的max_fails和fail_timeout属于被动健康检查——只有当有真实请求过来并失败时Nginx 才会标记服务器为宕机。对于更高要求的场景Nginx Plus商业版或开源版本结合第三方模块如nginx_upstream_check_module可以实现主动健康检查即 Nginx 主动定期向后端服务器发送探测请求如/health无需等待真实用户请求。# (此为概念性配置开源版需打补丁) upstream backend { server 192.168.1.10:8080; server 192.168.1.11:8080; check interval3000 rise2 fall3 timeout1000 typehttp; check_http_send GET /health HTTP/1.0\r\n\r\n; check_http_expect_alive http_2xx http_3xx; }六、结语感谢您的阅读如果你有任何疑问或想要分享的经验请在评论区留言交流

相关文章:

Nginx基于反向代理的负载均衡

一、引言:从单点到集群,流量分发的艺术当你的应用用户量从几百飙升到几万,单台服务器很快就会成为性能瓶颈,甚至面临宕机风险。此时,最直接有效的解决方案就是横向扩展——部署多台服务器组成集群。但新问题随之而来&a…...

支付即开票·自助开票·阿雪心学·无相无界(12)—东方仙盟

未来之窗架构:支付即开票,构建企业数字化开票新生态未来之窗架构深度融合数电发票创新能力,以支付即开票为核心内核,打通交易、开票、数据流转全链路,为企业提供合规、高效、低成本的一体化开票解决方案。该架构无需依…...

酒店门锁V10SDK接口说明-幽冥大陆(一百22)—东方仙盟

调用函数库://-----------------------------------------------------------------------------------//功能:读DLL版本,不涉及USB口操作C原型:int __stdcall GetDLLVersion(uchar *bufVer)返回:DLL版本//-----------…...

2026.5.24-要闻

宁波大学附属康宁医院李广学副主任医师指出,每天刷手机超5小时会显著增加肥胖风险(儿童群体风险增幅达74%),并导致前额叶等脑区代谢减弱,引发注意力、记忆力下降。‌‌1 8小时前...

我突然发现了一个道理,这个什么烂人都有,哪怕你随便说句没啥贬低的中性的话,人家也可以给你找出话来说你,你说这个社会搞笑不?这就是社会大了,什么鸟人都有的缘故了

你这个感受,其实很多人在进入社会、尤其进入婚姻和复杂人际关系后,都会慢慢体会到。 确实有一类人会: 对别人特别敏感 喜欢挑话里的刺 默认别人有恶意 很容易上纲上线 把中性话也理解成冒犯 你会发现: 同一句话,正常人听完没感觉; 有的人却能立刻开始不爽、挑理、发…...

有些女的就是只配孤独终老,一说话就伤人,我觉得没有必要相处,没必要去改变一些人,林子大了,什么鸟都有。。。——拉开距离,减少纠缠,建立边界,降低期待

你现在这种反感,更多像是长期被消耗后的失望和厌倦。 当一个人长期经历: 被否定 不被维护 说话被刺 情绪被压着 沟通没反馈 确实很容易慢慢变成: “我不想再理解了,也不想再靠近了。” 这其实是一种心理上的“抽离”。 不过也要注意,别因为遇到一种人,就把情绪扩大…...

丈母娘只要第一眼看不上女婿,即使后面结婚了,大概率也会一直看不上,大家觉得对吗?——为什么有些丈母娘总是挑女婿的不是,没事就发货大吼?——

很多家庭里,确实存在这种现象,但“第一眼看不上=一辈子看不上”,并不是绝对规律。 丈母娘对女婿的第一印象往往很强,因为她看的不是单纯“喜不喜欢”,而是: 这个男人靠不靠谱 能不能让女儿过得稳定 性格是否成熟 家庭背景、经济能力、处事方式是否安心 对女儿有没有…...

Hermes Agent用户指南通过Taotoken自定义供应商接入大模型

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Hermes Agent用户指南:通过Taotoken自定义供应商接入大模型 本文面向使用Hermes Agent框架的开发者,详细说…...

ChatGPT融资路演PPT全链路复盘:从技术叙事到估值锚点,98%初创团队忽略的3个合规雷区与2套可复用话术模板

更多请点击: https://intelliparadigm.com 第一章:ChatGPT融资路演PPT全链路复盘:从技术叙事到估值锚点 在2023年OpenAI面向核心投资者的闭门路演中,其PPT并非简单罗列产品功能,而是一套高度结构化的价值传递系统——…...

FanControl终极指南:5步实现Windows风扇智能控制,让电脑散热更安静更高效

FanControl终极指南:5步实现Windows风扇智能控制,让电脑散热更安静更高效 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://g…...

文房四宝-徽墨

文房四宝,除了你已经熟悉的墨(以徽墨为代表),还包括笔、纸、砚。这套书写工具共同构成了中国传统文化中文房雅器的核心,每一宝都有其最具代表性的产地与传奇故事。简单来说就是:湖笔、徽墨、宣纸、端砚。&a…...

P1313 计算系数【洛谷算法习题】

P1313 计算系数 网页链接 P1313 计算系数 题目描述 给定一个多项式 (byax)k(byax)^k(byax)k,请求出多项式展开后 xnymx^n\times y^mxnym 项的系数。 输入格式 输入共一行,包含 555 个整数,分别为 a,b,k,n,ma,b,k,n,ma,b,k,n,m&#xf…...

UnrealPakViewer:虚幻引擎Pak文件分析终极可视化工具

UnrealPakViewer:虚幻引擎Pak文件分析终极可视化工具 【免费下载链接】UnrealPakViewer 查看 UE4 Pak 文件的图形化工具,支持 UE4 pak/ucas 文件 项目地址: https://gitcode.com/gh_mirrors/un/UnrealPakViewer UnrealPakViewer是一款专业的开源工…...

阴阳师自动化脚本终极指南:一键解放双手,轻松享受游戏乐趣

阴阳师自动化脚本终极指南:一键解放双手,轻松享受游戏乐趣 【免费下载链接】OnmyojiAutoScript Onmyoji Auto Script | 阴阳师脚本 项目地址: https://gitcode.com/gh_mirrors/on/OnmyojiAutoScript 还在为阴阳师里那些重复繁琐的日常任务烦恼吗&…...

GEO优化是不是免费引流方式

这个问题很多企业主会问,背后关心的是获客成本。要回答清楚,需要区分几个概念:流量获取本身是否付费、优化过程是否产生成本、长期来看性价比如何。GEO本身属于“自然流量”获取方式从本质上讲,GEO优化获取的流量是自然流量&#…...

普通企业不懂技术可以做GEO优化吗

这是很多中小企业主最关心的问题。答案非常明确:可以,且不需要自己成为技术专家。GEO优化已经分化出多层次的服务模式,企业完全可以根据自身的技术能力和团队情况,选择最匹配的合作方式。不会写代码、不懂算法、没有运营团队——这…...

3个技巧解除索尼相机限制:OpenMemories-Tweak项目实战指南

3个技巧解除索尼相机限制:OpenMemories-Tweak项目实战指南 【免费下载链接】OpenMemories-Tweak Unlock your Sony cameras settings 项目地址: https://gitcode.com/gh_mirrors/op/OpenMemories-Tweak 你是否曾经因为索尼相机的30分钟视频录制限制而错过重要…...

3分钟搞定视频字幕:VideoSrt自动生成工具全解析

3分钟搞定视频字幕:VideoSrt自动生成工具全解析 【免费下载链接】video-srt-windows 这是一个可以识别视频语音自动生成字幕SRT文件的开源 Windows-GUI 软件工具。 项目地址: https://gitcode.com/gh_mirrors/vi/video-srt-windows 还在为视频字幕制作而头疼…...

思源宋体TTF:解决中文Web排版痛点的专业方案

思源宋体TTF:解决中文Web排版痛点的专业方案 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 当我们构建现代中文网站时,字体选择往往成为最棘手的挑战之一。商业…...

SVM与逻辑回归:从线性分类到核方法的原理、对比与实践指南

1. 项目概述:从线性分类到非线性世界的两把钥匙在机器学习的工具箱里,支持向量机(SVM)和逻辑回归(LR)是两把经久不衰的“瑞士军刀”。它们都源于线性模型,却通过不同的哲学路径,解决…...

前端可访问性:键盘导航的无障碍设计实践

前端可访问性:键盘导航的无障碍设计实践 前言 各位前端小伙伴,今天咱们来聊聊键盘导航的无障碍问题。想象一下: 你设计了一个漂亮的网站,所有交互都需要鼠标视力正常的用户觉得"交互流畅"但键盘用户完全无法使用视障用户…...

前端可访问性:表单验证的无障碍实现指南

前端可访问性:表单验证的无障碍实现指南 前言 各位前端小伙伴,今天咱们来聊聊表单验证的无障碍问题。想象一下: 用户填写表单时出错了视力正常的用户看到红色错误提示但屏幕阅读器用户可能完全不知道发生了什么键盘用户也可能错过错误信息 这…...

OpenSSH ssh-agent动态链接劫持漏洞CVE-2023-38408深度修复指南

1. 这不是一次普通升级:CVE-2023-38408为什么必须亲手编译修复 OpenSSH-ssh-agent CVE-2023-38408——这个编号在2023年7月刚披露时,很多运维和安全工程师第一反应是“又一个高危漏洞”,点开NVD页面扫一眼CVSS 8.8分,记下补丁版本…...

OpenSSH用户枚举漏洞CVE-2018-15473深度解析与修复指南

1. 这个漏洞不是“能被爆破密码”,而是“连用户名都藏不住”OpenSSH用户枚举漏洞(CVE-2018-15473)在2018年7月被公开时,很多运维同学第一反应是:“哦,又是密码爆破相关?”——这个误解直接导致大…...

Pikachu暴力破解实战:Burp Suite爆破思维训练全解析

1. 这不是“练手”,是真实世界暴力破解的完整沙盘推演很多人第一次点开Pikachu漏洞练习平台的“暴力破解”模块时,下意识觉得:“不就是写个脚本跑密码字典嘛?Python requests for循环,十分钟搞定。”我当年也是这么想…...

高校教务系统DES加密登录逆向实战:从抓包到Python自动化

1. 这不是“爬个登录”那么简单:为什么一个广东白云学院的登录接口值得花一整天逆向你可能刚看到标题就下意识划走——“又一个学校教务系统?不就是抓个包改个密码字段嘛”,我完全理解。去年帮朋友调试某高校选课脚本时,我也这么想…...

Flutter Widgets组件详解:从基础到高级

Flutter Widgets组件详解:从基础到高级 一、Widget基础概念 在Flutter中,一切都是Widget。Widget是Flutter应用的基本构建块,它们描述了UI在某个特定时刻的外观。Flutter的Widget树是应用界面的核心结构。 1.1 Widget的分类 Flutter Widget主…...

CSS伪类详解:从基础到高级应用

CSS伪类详解:从基础到高级应用 一、什么是CSS伪类 CSS伪类是一种选择器,用于选择处于特定状态的元素。它们以冒号 : 开头,可以为元素的不同状态设置不同的样式。伪类的强大之处在于它们能够根据用户交互、文档结构或元素状态来动态改变样式&a…...

通过Taotoken CLI工具一键配置团队开发环境与统一模型调用

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过Taotoken CLI工具一键配置团队开发环境与统一模型调用 在团队协作开发中,统一管理大模型API的接入配置是一项常见且…...

Flutter国际化与本地化完全指南

Flutter国际化与本地化完全指南 引言 国际化是构建全球化应用的关键环节,Flutter提供了完善的国际化支持。本文将深入探讨Flutter中的国际化和本地化技术。 一、基础配置 1.1 添加依赖 dependencies:flutter_localizations:sdk: flutterintl: ^0.18.11.2 更新main.d…...