Nginx学习系列四默认负载均衡轮询及Ip_hash等常用指令介绍
2024-08-26 01:12:48
一、简介
Upstream模块是Nginx中一个核心模块,当客户端访问Nginx服务器的时候,Nginx会从服务器列表中选取压力小的服务器,然后分配给客户端进行访问.这个过程,Nginx通过轮询算法轮询所有的服务器,找到合适的分配给客户端.而这个过程是通过Upstream模块来实现.
所以,可以将Upstream模块理解为实现轮询算法的负载均衡.
二、常用指令
1、ip_hash指令
(1)、简介
在负载均衡系统中,如果客户端已经在某台服务器中登陆,如果我们在访问系统,Nginx会给客户端重新分配一台服务器,这台服务器很有可能不是原先的那台服务器,这显然是不妥的,因为这样就意味着客户端又要重新登陆一次系统.所以需要通过ip_hash指令来解决这个问题.
ip_hash指令的原理:Nginx通过哈希算法(键值对)给每个客户端指定一个对应的服务器,当一个用户已经在一台服务器上登陆,当它再次访问Nginx服务器时,Nginx会从哈希集合中拿到用户上次登陆的那个服务器,然后跳转到服务器.
(2)、实现方式
很简单,修改配置文件如下:
i、定位到配置文件
ii、修改配置文件
按esc 输入:wq! 按回车键推出,并重启Nginx服务器
iii、查看效果
从原先的分别跳到阿里云服务器和百度服务器变成如果跳转到阿里云,如果之后访问则一直跳转到阿里云.
2、server指令
(1)、服务器权重weight指令
默认的服务器列表weight权重都为1,当指定weight权重为2时,那么那台服务器,将会承担(2/所有服务器的weight权重和)的压力
注:如果指定了ip_hash的规则,则权重失效.两个规则互斥.
最新文章
- Jquery Uploadify3.21.与2.1版本 使用中存在的问题--记录三
- 几种xml读取方法比较
- libevent源码分析:http-server例子
- [转载] Java高新技术第一篇:类加载器详解
- ADO.NET Entity Framework,Code First简单示例
- ActiveMQ集群(2)
- PermGen space 与 Java heap space
- MySQL 出现 The table is full 的解决方法
- 读改善c#代码157个建议:建议1~3
- Java电器商场小系统--简单的java逻辑
- this指向(匿名函数问题)
- 最简单的基于FFMPEG+SDL的音频播放器 ver2 (采用SDL2.0)
- Vue 错误记录:Cannot read property 'beforeRouteEnter' of undefined
- MRO
- 【洛谷P3919】可持久化数组
- 在Listener(监听器)定时启动的TimerTask(定时任务)中使用Spring@Service注解的bean
- 【转】jmeter 如何将上一个请求的结果作为下一个请求的参数——使用正则提取器
- iOS UI基础-2.0按钮操作与形变
- PHP进行安全字段和防止XSS跨站脚本攻击过滤(通用版)
- 篇三:XPath--解析Html