Nginx 负载均衡配置教程以及 upstream 详解
off999 2025-01-04 22:22 25 浏览 0 评论
一、通用配置
在 Nginx 中配置负载均衡非常简单。通过定义一个 upstream 块,你可以指定多个后端服务器用于负载均衡。下面是一个基本的例子:
http {
upstream myapp {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
server {
listen 80;
server_name www.example.com;
location / {
proxy_pass http://myapp;
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_set_header X-Forwarded-Proto $scheme;
}
}
}详细说明:
- upstream 块: 定义了一个名为 myapp 的负载均衡组,包含了三台后端服务器。
- server 块: 用于处理进入的请求,并将它们代理到 upstream 定义的服务器组。
- proxy_pass 指令: 将请求转发到 myapp 这个 upstream 组。
- proxy_set_header 指令: 设置了一些头信息以保持客户端的原始请求信息。
二、负载均衡算法
Nginx 支持多种负载均衡算法,默认使用 轮询(Round Robin),选择适合应用的负载均衡策略可以帮助提升性能并确保高可用性。你可以通过在 upstream 块中指定不同的策略来更改这个行为:
- 轮询 (round-robin): 默认策略,轮流将请求分配给每个服务器。
- 权重 (weight): 为服务器分配不同权重,例如:
upstream myapp {
server backend1.example.com weight=3;
server backend2.example.com weight=1;
}- 最少连接 (least_conn): 将新请求分配给当前活动连接数最少的服务器。
upstream myapp {
least_conn;
server backend1.example.com;
server backend2.example.com;
}- IP 哈希 (ip_hash): 基于客户端 IP 地址进行哈希,从而使同一客户端的请求总是转发到同一台后端服务器。
upstream myapp {
ip_hash;
server backend1.example.com;
server backend2.example.com;
}三、upstream 参数详解
在 Nginx 中,upstream 块支持多种配置选项,用于管理与后端服务器的连接,包括超时设置、失败重试次数等。下面是一个详细的 upstream 配置示例:
http {
upstream myapp {
# 定义后端服务器及其权重
server backend1.example.com weight=3 max_fails=3 fail_timeout=30s;
server backend2.example.com weight=2 max_fails=3 fail_timeout=30s;
server backend3.example.com backup;
# 设置空闲连接数
keepalive 16;
# 连接超时时间
connect_timeout 5s;
# 响应超时时间
send_timeout 10s;
proxy_read_timeout 30s;
}
server {
# 省略
.....
}
}配置详解:
- server 指令
- weight=<number>: 指定服务器的权重,影响负载均衡分配。
- max_fails=<number>: 在指定时间内允许的最大失败次数。如果超过这个值,服务器将被标记为不可用。
- fail_timeout=<time>: 服务器被标记为不可用的时间长度。在这段时间后会重新尝试连接。
- backup 参数
该参数将当前服务器标记为备用服务器,仅在主服务器都不可用时才使用。
- keepalive
保持活动连接数,以减少建立连接的开销,提高性能。
- connect_timeout
设置与后端服务器建立连接的超时时间。
- send_timeout
定义发送请求到后端服务器时的超时时间。
- proxy_read_timeout
设置从后端服务器接收响应的超时时间。
注:以上配置可以根据应用需求进行调整,以便优化网络延迟和提高服务可靠性。确保在生产环境中仔细测试这些超时时间和重试策略,以找到最佳的设置。
- 上一篇:写给前端同学的Nginx配置指南
- 下一篇:Nginx搭建文件服务器
相关推荐
- 电脑开一会就蓝屏怎么回事(电脑为什么开一会就蓝屏)
-
电脑蓝屏原因:1.虚拟内存不足造成系统多任务运算错误2.CPU超频导致运算错误3.内存条的互不兼容或损坏引起运算错误4.光驱在读盘时被非正常打开所至5.遭到不明的程序或病毒攻击所至6.版本冲突7...
-
- 中文简体拼音输入法(简体中文注音输入法)
-
1.在桌面上找到输入法图标,点击下方的繁 2.如图所示,放下方变成简字样,就把输入法从繁体改为简体了输入法简体字改成繁体字更改方法如下例如使用的是vivoy5s的手机,我们打开手机,在手机桌面找到短信图标,点击图标,就...
-
2025-12-14 19:51 off999
- ie无法打开internet站点(跨年时间是23点还是0点)
-
如电脑无法浏览网页,你可根据以下情况进行排障:1、宽带未连接。重新连接宽带。2、路由器故障。拆除路由器后,进行宽带连接试用。3、偶发性故障,如ADSL断流,电脑内存数据溢出等。重启电脑、modem试...
-
- 提高电脑速度的方法和技巧(提升电脑速度的方法)
-
具体步骤如下:1.鼠标右键点击“计算机”图标,找到并选择“属性”。2.点击“高级系统设置”。3.点击“高级”-“设置”。4.点击“调整为最佳佳能”,点击“确定”即可完成。提升cpu性能的方法:1、在任务管理器里关闭没用的程序。2、通过超频来...
-
2025-12-14 18:03 off999
- 序列号查询入口在线查询(序列号查询怎么样说明是真的)
-
苹果查序列号入口可登陆苹果官网checkcoverage.apple.com进行查询,具体步骤如下:1、打开手机设置,点击“通用”;2、进入页面后点击“关于本机”;3、页面跳转后,我们就可以看到本机的...
- 局域网监控软件app(局域网监控软件app下载)
-
。超级眼是一款专业的公司电脑监控软件、局域网监控软件,它可以对员工电脑屏幕监控同时还可以对员工上网行为管理,提升员工的工作效率。通过浏览记录,管理端可以查看员工在工作时间浏览了什么网站,即时通讯可以让...
- 华为商城官网app下载(华为商城官方下载)
-
请您按照以下方式操作:EMUI5.X及以下:进入设置>应用管理>天气,点击启用天气应用,然后长按桌面空白区域,点击“窗口小工具”,找到“天气”小工具,并将“天气”小工具拖动到主屏幕空白区域...
- 安卓最好的本地视频播放器(安卓本地视频播放器排行榜)
-
1抖音视频2快看点视频3小蝌蚪视频4tiktok视频5樱花动漫视频6杏吧视频7YouTube视频8王牌视频视频9横风动漫视频10泰剧迷视频MoboPlayer是运行在移动设备上,...
- 手机能连上wifi却上不了网(手机连上wifi却上不了网怎么办,别人能用)
-
首先要确保你们的路由器有没有正常工作,可以使用其他手机或者数码产品连接该WIFI热点,如果都能正常连接和正常上网,那么一般来说这个无线路由器是可以正常工作的。2、其次要确保连接WiFi有问题的手机没...
- 各种显卡排名(显卡排行榜 2021)
-
1微星(MSI)显卡(全球出货量最大的显卡品牌,A+N)2丽台(Leadtek)显卡(全球最著名的专业绘图卡的厂商,N)3华硕(ASUS)显卡(台湾板卡四大天王之一,A+N)4蓝宝石(S...
- 电脑一键重装系统哪个最好用
-
1.系统之家一键重装大师。这款系统重装软件系统之家重装大师小编觉得很不错,操作简单,笔记本重装win7系统过程只需要一键操作就可以完成;界面美观,很大程度上优化了用户体验;下载重装速度快,采用新技术极...
- 打字最好的输入法(打字输入法哪个最快)
-
搜狗拼音输入法:会拼音就会,熟了也能打很快搜狗五笔输入法:这个我一直用,因为五笔用得不熟练,这个可以五笔拼音混输(优先选五笔的字),五笔输入法需要一定时间学习,学好了比拼音要快,而且相当准确,不像拼...
-
- 移动硬盘插电脑不显示(移动硬盘插电脑不显示盘符)
-
移动硬盘插上电脑不显示:1,进入设备和打印机,找到自己的移动硬盘,删除后再插入。2,打开设备管理器—通用串行总线控制器,找到USB大容量存储设备后右键卸载,接着在拔插一次移动硬盘。3,插入移动硬盘——打开设备管理器——磁盘管理,这个时候不出...
-
2025-12-14 13:51 off999
- 下载工具app(推特视频下载工具app)
-
答,kugo游戏下载器下载有几种方法:第一种:一般下载游戏,都是去官网上下载,因为这里下载不会出现有附带的垃圾广告链接一并下载安装到你的电脑上了。第二种:就是直接在浏览器上搜索你需要下载的游戏名称,然...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
使用 python-fire 快速构建 CLI_如何搭建python项目架构
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
