四、Nginx配置文件-负载均衡
目录
一、负载均衡的作用
二、负载均衡状态
三、负载均衡的指令
1、upstream 指令
2、server指令
四、负载均衡几种方式
1、轮询(Round Robin 常用)
2、IP Hash (较少)
3、最少连接数(Least Connections 较少)
4、加权轮询(Weighted Round Robin 常用)
5、fair(较少)
6、backup(一般)
一、负载均衡的作用
- 解决服务器的高并发压力,提高应用程序的处理性能。
 - 提供故障转移,实现高可用。
 - 通过添加或减少服务器数量,增强网站的可扩展性。
 - 在负载均衡器上进行过滤,可以提高系统的安全性。
 
二、负载均衡状态
|   状态  |   概述  | 
|   down  |   当前的server暂时不参与负载均衡  | 
|   backup  |   预留的备份服务器,当主服务器不可用时,将用来传递请求  | 
|   max_fails  |   允许请求失败的次数  | 
|   fail_timeout  |   经过max_fails失败后, 服务暂停时间  | 
|   max_conns  |   限制最大的接收连接数  | 
三、负载均衡的指令
1、upstream 指令
该指令是用来定义一组服务器,它们可以是监听不同端口的服务器,并且也可以是同时监听TCP和Unix socket的服务器。服务器可以指定不同的权重,默认为1。
2、server指令
该指令用来指定后端服务器的名称和一些参数,可以使用域名、IP、端口或者unix socket。与之前的server指令不一样。
四、负载均衡几种方式
1、轮询(Round Robin 常用)
轮询是最常见的负载均衡方式,Nginx会按照请求的顺序依次将请求分发给后端服务器。例如,如果有3台后端服务器,Nginx会将第1个请求分发给服务器A,第2个请求分发给服务器B,第3个请求分发给服务器C,然后循环重复。适于无状态的请求。
配置示例:
upstream backend {server backend1;server backend2;server backend3;
}server {listen 80;location / {proxy_pass http://backend;}
}示例:
upstream backend{server 192.168.153.128:8081;server 192.168.153.128:8082;server 192.168.153.128:8083;
}
server {listen 8080;server_name localhost;location /{proxy_pass http://backend;}
}示例2:对特定资源负载upstream videobackend{server 192.168.153.128:9001;server 192.168.153.128:9002;
}
upstream filebackend{server 192.168.153.128:9003;server 192.168.153.128:9004;
}
server {listen 8084;server_name localhost;location /video/ {proxy_pass http://videobackend;}location /file/ {proxy_pass http://filebackend;}
}示例3:对不同域名实现负载upstream qwe{server 192.168.153.128:9001;server 192.168.153.128:9002;
}
upstream asd{server 192.168.153.128:9003;server 192.168.153.128:9004;
}
server {listen    8085;server_name www.qwe.cn;location / {proxy_pass http://qwe;}
}
server {listen    8086;server_name www.asd.cn;location / {proxy_pass http://asd;}
}
 
2、IP Hash (较少)
IP Hash方式根据客户端的IP地址进行哈希计算,将同一个客户端的请求始终转发到同一台后端服务器上。这样可以保证同一个客户端的请求都由同一台服务器处理,适合于需要保持会话的应用场景。
配置示例:
upstream backend {ip_hash;server backend1;server backend2;server backend3;
}server {listen 80;location / {proxy_pass http://backend;}
}
 
3、最少连接数(Least Connections 较少)
最少连接数方式会将请求分发给当前连接数最少的后端服务器,以达到负载均衡的效果。这种方式适用于后端服务器性能不一致的情况。
配置示例:
upstream backend {least_conn;server backend1;server backend2;server backend3;
}server {listen 80;location / {proxy_pass http://backend;}
}
 
4、加权轮询(Weighted Round Robin 常用)
加权轮询方式可以根据后端服务器的性能配置不同的权重,来调整请求的分发比例。权重越高的服务器会接收到更多的请求。
配置示例:
upstream backend {server backend1 weight=3;server backend2 weight=2;server backend3 weight=1;
}server {listen 80;location / {proxy_pass http://backend;}
}示例:
upstream backend{server 192.168.153.128:9001 weight=7;server 192.168.153.128:9002 weight=5;server 192.168.153.128:9003 weight=3;
}
server {listen 8083;server_name localhost;location /{proxy_pass http://backend;}
}
 
5、fair(较少)
upstream backend {fair;server backend1 weight=3;server backend2 weight=2;server backend3 weight=1;
}server {listen 80;location / {proxy_pass http://backend;}
} 
fair模块是比上面几个更加智能的负载均衡算法。此种算法可以依据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间来分配请求,响应时间短的优先分配。Nginx本身是不支持fair的,如果需要使用这种调度算法,必须下载Nginx的upstream_fair模块;再次不做演示
6、backup(一般)
backup关键字用于定义备份服务器。当主服务器宕机或无法处理请求时,备份服务器将接手处理请求。
upstream backend {server backend1;server backend2 backup;
}server {listen 80;location / {proxy_pass http://backend;}
}当 backend1 处于在线状态并且能够处理请求时,Nginx将只将请求发送到backend1。
只有当backend1 宕机或者由于某些原因无法处理请求时,Nginx才会将请求发送到backend2。
这种配置通常用于高可用性部署,确保在主服务器宕机时,有一个备用服务器可以接手处理请求,从而减少服务中断的影响。 
相关文章:
四、Nginx配置文件-负载均衡
目录 一、负载均衡的作用 二、负载均衡状态 三、负载均衡的指令 1、upstream 指令 2、server指令 四、负载均衡几种方式 1、轮询(Round Robin 常用) 2、IP Hash (较少) 3、最少连接数(Least Connections 较少&…...
ofd文件预览
文件列表 <template><div><div classfile v-if$myUtils.coll.isNotEmpty(filesList)><div classfile-view><div classfile-view-item :style{justifyContent: align } v-for(item, index) in filesList :keyindex><img classfile-view-item-…...
浅浅了解下Spring中生命周期函数(Spring6全攻略)
你好,这里是codetrend专栏“Spring6全攻略”。 Spring框架设计生命周期回调函数的主要目的是为了提供一种机制,使开发人员能够在对象创建、初始化和销毁等生命周期阶段执行特定的操作。这种机制可以帮助开发人员编写更加灵活和可维护的代码。 举个例子…...
建议收藏!亚马逊卖家必须知道的37个常用术语解释
运营亚马逊,经常会看到很多个专业术语,想必大部分新手卖家都比较陌生,熟悉这些常用术语的含义有助于你更好地运营亚马逊。下面为各位整理了37个在亚马逊跨境电商中常见的术语及其解释,建议收藏! 1、SKU Stock Keeping…...
黑苹果睡眠总是自动唤醒(RTC)
黑苹果睡眠总是自动唤醒【RTC】 1. 问题2. 解决方案2.1. 查看重启日志2.2. 配置Disable RTC wake scheduling补丁 3. 后续4. 参考 1. 问题 黑苹果EFI 更换后,总是在手动 睡眠后,间歇性重启,然后再次睡眠,然后再重启。原因归结为&…...
【代码随想录训练营】【Day 49+】【动态规划-8】| Leetcode 121, 122, 123
【代码随想录训练营】【Day 49】【动态规划-8】| Leetcode 121, 122, 123 需强化知识点 买卖股票系列 题目 121. 买卖股票的最佳时机 动态规划贪心:记录左侧的最小值 class Solution:def maxProfit(self, prices: List[int]) -> int:# n len(prices)# # 0…...
k8s metrics-server服务监控pod 的 cpu、内存
项目场景: 需要开启指标服务,依据pod 的 cpu、内存使用率进行自动的扩容或缩容 pod 的数量 解决方案: 下载 metrics-server 组件配置文件: wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/…...
电脑自带录屏在哪?电脑录屏,4个详细方法
在现代社会中,越来越多的人需要在电脑上录制视频,比如录制游戏操作、制作教学视频、演示文稿等等。因此,电脑录屏成为了一项非常重要的功能。那么电脑自带录屏在哪?本文将带领大家看看可以使用哪些方法进行录屏。 录屏方法一&…...
[Cloud Networking] Layer3 (Continue)
文章目录 1. DHCP Protocol1.1 DHCP 三种分配方式1.2 DHCP Relay (中继) 2. 路由协议 (Routing Protocol)2.1 RIP (Routing Information Protocol)2.2 OSPF Protocol2.2.1 OSPF Area2.2.2 Route ID / DR / BDR2.2.3 LSA / OSPF 邻居表 / LSDB / OSPF路由表 2.3 BGP Protocol2.4…...
missing authentication credentials for REST request
1、报错截图 2、解决办法 将elasticsearch的elasticsearch.yml的 xpack.security.enabled: true 改为 xpack.security.enabled: false...
Unity 从0开始编写一个技能编辑器_02_Buff系统的生命周期
工作也有一年了,对技能编辑器也有了一些自己的看法,从刚接触时的惊讶,到大量工作时觉得有一些设计的冗余,在到特殊需求的修改,运行效率低时的优化,技能编辑器在我眼中已经不再是神圣不可攀的存在的…...
计算机网络简答题
第一章 计算机网络 1.因特网是一个世界范围的计算机网络,记一个互联了遍及全世界的计算机设备的网络。 2.计算机网络将众多分散的、自治的(一台坏了不影响其他)计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。 3.计算机网络的组…...
探索Java 8 Stream API:现代数据处理的新纪元
Stream流 Stream初探:何方神圣? Stream流是一种处理集合数据的高效工具,它可以让你以声明性的方式处理数据集合。Stream不是存储数据的数据结构,而是对数据源(如集合、数组)的运算操作概念,支…...
vim 删除光标到最后一行的所有内容
在 Vim 中删除从光标所在位置到文件末尾的所有内容 删除从光标所在位置到文件末尾的所有内容使用 dG 命令 参考 删除从光标所在位置到文件末尾的所有内容 使用 dG 命令 确保你在正常模式下(按 Esc 键)。移动光标到你想要开始删除的位置。输入以下命令&…...
k8s之kubelet证书时间过期升级
1.查看当前证书时间 # kubeadm alpha certs renew kubelet Kubeadm experimental sub-commands kubeadm是一个用于引导Kubernetes集群的工具,它提供了许多命令和子命令来管理集群的一生周期。过去,某些功能被标记为实验性的,并通过kubeadm a…...
5G消息 x 文旅 | 一站式智慧文旅解决方案
5G消息 x 文旅 | 一站式智慧文旅解决方案 文旅 x 5G 消息将进一步强化资源整合,满足游客服务需求、企业营销需求、政府管理需求,推进文化旅游项目的智慧化、数字化,增强传播力、竞争力和可持续性。5G 消息的“原生入口”、“超强呈现”、“智…...
如何评估员工在新版FMEA培训后应用知识的效果?
随着制造业的快速发展,新版FMEA已成为企业提升产品质量、减少故障风险的关键一环。然而,培训只是第一步,如何有效评估员工在新版FMEA培训后应用知识的效果,才是确保培训成果转化的关键所在。 评估员工知识应用效果的首要步骤是制定…...
python脚本之解析命令参数
import requests import argparseprint(f"{__name__}:start")parser argparse.ArgumentParser(description使用方法) parser.add_argument(-p, --prefix, typestr, help域名) parser.add_argument(-t, --token, typestr, helptoken) parser.add_argument(-i, --queu…...
当JS遇上NLP:开启图片分析的奇幻之旅
前言 在当今科技飞速发展的时代,JavaScript(JS)作为广泛应用的编程语言,展现出了强大的活力与无限的可能性。与此同时,自然语言处理(NLP)领域也正在经历着深刻的变革与进步。 当这两者碰撞在一…...
trpc快速上手
tRPC (Type-safe Remote Procedure Call) 是一个用于构建类型安全的 API 的框架,它能够在前端和后端之间共享类型,确保类型安全性。这对于使用 TypeScript 的项目特别有用,因为它消除了前后端类型不一致的问题,提高了开发效率和代…...
Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...
USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
大模型——基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程
基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程 下载安装Docker Docker官网:https://www.docker.com/ 自定义Docker安装路径 Docker默认安装在C盘,大小大概2.9G,做这行最忌讳的就是安装软件全装C盘,所以我调整了下安装路径。 新建安装目录:E:\MyS…...
【java】【服务器】线程上下文丢失 是指什么
目录 ■前言 ■正文开始 线程上下文的核心组成部分 为什么会出现上下文丢失? 直观示例说明 为什么上下文如此重要? 解决上下文丢失的关键 总结 ■如果我想在servlet中使用线程,代码应该如何实现 推荐方案:使用 ManagedE…...
