Nginx Upstream负责均衡的实现方案

2023-10-30

nginx中upstream实现负责均衡的几种方式:

1、轮询(weight=1)
默认选项,当weight不指定时,各服务器weight相同,
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
 

upstream bakend {
server 192.168.1.10;
server 192.168.1.11;
}

2、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
如果后端服务器down掉,能自动剔除。
比如以下配置,则1.11服务器的访问量为1.10服务器的两倍。
 

upstream bakend {
server 192.168.1.10 weight=1;
server 192.168.1.11 weight=2;
}

3、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session不能跨服务器的问题。
如果后端服务器down掉,要手工down掉。(www.jbxue.com 整理)
 

upstream resinserver{
ip_hash;
server 192.168.1.10:8080;
server 192.168.1.11:8080;
}

4、fair(第三方插件)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
 

upstream resinserver{
server 192.168.1.10:8080;
server 192.168.1.11:8080;
fair;
}

5、url_hash(第三方插件)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存服务器时比较有效。
在upstream中加入hash语句,hash_method是使用的hash算法。
 

upstream resinserver{
server 192.168.1.10:8080;
server 192.168.1.11:8080;
hash $request_uri;
hash_method crc32;
}
 

设备的状态有:
1、down 表示单前的server暂时不参与负载
2、weight 权重,默认为1。 weight越大,负载的权重就越大。
3、max_fails 允许请求失败的次数默认为1。当超过最大次数时,返回proxy_next_upstream 模块定义的错误
4、fail_timeout max_fails次失败后,暂停的时间。
5backup 备用服务器, 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。-

介绍了这么多,下面来看一个负载均衡实例:
 

upstream tel_img_stream {
#ip_hash;
server 192.168.11.68:20201;
server 192.168.11.69:20201 weight=100 down;
server 192.168.11.70:20201 weight=100;
server 192.168.11.71:20201 weight=100 backup;
server 192.168.11.72:20201 weight=100 max_fails=3 fail_timeout=30s;
}
 

说明:
1)、down 表示当前的server暂时不参与负载
2)、weight 默认为1.weight越大,负载的权重就越大。
3)、backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
4)、上例中192.168.11.72:20201 设置最大失败次数为 3,也就是最多进行 3 次尝试,且超时时间为 30秒。max_fails 的默认值为 1,fail_timeout 的默认值是 10s。
注意,当upstream中只有一个 server 时,max_fails 和 fail_timeout 参数可能不会起作用。
weight\backup 不能和 ip_hash 关键字一起使用。

最后在需要使用负载均衡的server中增加 proxy_pass http://tel_img_stream/;
获取访问head信息:
 

location ~* ^/tel_img/(.*)$
{
proxy_pass http://tel_img_stream;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
 

location 对URL进行匹配,可以进行重定向或者进行新的代理负载均衡。

PS:转自 http://www.jbxue.com/article/26828.html


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nginx Upstream负责均衡的实现方案 的相关文章

随机推荐

  • dataguard-(ORA-16004/ORA-01196/ORA-01110)

    author skatetime 2009 08 01 1 故障现象 一次突然断电导致我的standby open时报如下的错误 ORA 16004 备份数据库需要恢复ORA 01196 文件 1 由于介质恢复会话失败而不一致ORA 011
  • Unity Text 透明

    Unity Text透明化问题 Shader UI TextBlend Properties HideInInspector MainTex Texture 2D white HideInInspector BlendTex Blend T
  • 集度汽车(武汉java)一面

    hashMap底层结构 hash算法的好处是什么 为什么采用数组加链表 数组有哪些特性 内存地址连续 查找快 怎么解决哈希碰撞 链地址法 并发编程需要注意哪些地方 如何处理变量的线程安全 sycronized关键字原理 分布式锁实现方式 有
  • 华子这题确实不错!

    我们来看一下这道题目到底哪里不错 题目描述 小王在进行游戏大闯关 有一个关卡需要输入一个密码才能通过 密码获得的条件如下 在一个密码本中 每一页都有一个由 26 个小写字母组成的若干位密码 从它的末尾开始依次去掉一位得到的新密码也在密码本中
  • 小程序从后台切到前台首页刷新机制 (Banner图 )

    问题 后台 banner 图 更新后 小程序首页不会自动更新 注明 这里只针对首页 其他页进入 onload即可 解决方案一 直接在page页面 每次onShow 都执行 解决方案二 app js 文件 app js App onLaunc
  • MongoDB报错:org.springframework.data.mongodb.UncategorizedMongoDbException: Exception authenticating

    org springframework data mongodb UncategorizedMongoDbException Exception authenticating MongoCredential Caused by com mo
  • Me and My Girlfriend靶机实验

    目录 靶机描述 准备 信息收集 一键三连IP 端口 目录扫描 ip 端口扫描 目录扫描 需要用到kali中的dirsearch 漏洞分析 渗透攻击 提权 这里我们可以尝试使用漏洞检查脚本 靶机的下载地址 Me and My Girlfrie
  • Ubuntu 18.04 镜像下载

    打开 官网 点击 下载 点击 Ubuntu桌面系统 点击 其他下载 鼠标滑到最下方 点击 Ubuntu 18 04 6 桌面版 64位 点击 保存
  • STM32 USB学习笔记9

    主机环境 Windows 7 SP1 开发环境 MDK5 14 目标板 STM32F103C8T6 开发库 STM32F1Cube库和STM32 USB Device Library 现在我们来分析VCP例程的最后一个文件USB设备类的us
  • LDAP概念和原理

    http blog sina com cn s blog 6151984a0100ey3z html 什么是目录服务 目录服务就是按照 树状存储信息的模式 目录服务的特点 目录服务与关系型数据库不同 目录服务的数据类型主要是字符型 而不是关
  • 如何通过redis 配置提高redis的性能

    redis的性能 我拿什么拯救 持久化选项 客户端输出缓冲限制 数据结构优化 压缩列表 网络配置 连接池 客户端输出缓冲限制 数据结构优化 压缩列表 网络配置 连接池 不冷战 不任性 多沟通 用舒服的方式喜欢和爱 知道承担 懂得分享 一起进
  • 组件扫描功能

    Spring提供了注解扫描 利用组件扫描注解和组件注解配合 可以自动扫描包空间自动创建Bean对象 减少编码 提高效率 配置文件 Configuration ComponentScan basePackages cn tedu Demo p
  • 数据结构——深度优先遍历(DFS)无向连通图

    以下是数据结构中关于深度优先遍历无向连通图的操作 编程风格参考严蔚敏版数据结构 其实深度优先遍历就是二叉树的先序遍历的推广 头文件以及宏定义 include
  • GitHub博客地址

    本人博客主要发布在GitHub Pages CSDN上的博客不再更新 我的GitHub博客地址 Hong s Bloghttps yalandhong github io 备用链接 https yalandhong vercel app h
  • IDEA解决运行项目虚拟内存溢出问题

    在我们运行一个比较大的项目的时候总是出现Caused by java lang OutOfMemoryError PermGen space的问题简单在网上查询了一下意思是内存溢出了 什么 我的电脑是8G运行内存 256的固态 你告诉这样都
  • bigquant量化平台笔记

    https bigquant com tutorial 宽客学院 https bigquant com community t topic 131694 AI量化策略快速理解 AI量化策略的目标 Label 默认使用股票收益率作为目标 第一
  • 关于antd的treeselect使用

    在表单中 我们可能会碰到这样的需求 比如我想将某一个物品或者资产 分配到某一个部门的员工下 那么我们需要在表单中做这样的配置 这样就会用到antd的treeselect组件 组件很好用 自带搜索框 可以大大的提高用户的可操作性 我们来看一下
  • 【CentOS安装配置Jupyter 】

    CentOS安装配置Jupyter 功能快捷键 合理的创建标题 有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一个表格 设定内容居中 居左 居右 SmartyPants 创建一个自
  • 攻防世界之misc1

    攻防世界之misc1 首先这题非常的考研脚本实力 他题目没有下载文件 只有一个值 d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9e1e6b3e3b
  • Nginx Upstream负责均衡的实现方案

    nginx中upstream实现负责均衡的几种方式 1 轮询 weight 1 默认选项 当weight不指定时 各服务器weight相同 每个请求按时间顺序逐一分配到不同的后端服务器 如果后端服务器down掉 能自动剔除 upstream