点击上方"Java学习之道",选择"关注"公众号

每天10:24,干货准时送达!

来源:https://dwz.cn/JY7SVlZf

Nginx应该是现在最火的web和反向代理服务器,没有之一。她是一款诞生于俄罗斯的高性能web服务器,尤其在高并发情况下,相较Apache,有优异的表现。那除了负载均衡,她还有什么其他的用途呢,下面我们来看下。

一、静态代理

Nginx擅长处理静态文件,是非常好的图片、文件服务器。把所有的静态资源的放到nginx上,可以使应用动静分离,性能更好。

二、负载均衡

Nginx通过反向代理可以实现服务的负载均衡,避免了服务器单节点故障,把请求按照一定的策略转发到不同的服务器上,达到负载的效果。常用的负载均衡策略有

1、轮询

将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。

2、加权轮询

不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不相同。给配置高、负载低的机器配置更高的权重,让其处理更多的请;而配置低、负载高的机器,给其分配较低的权重,降低其系统负载,加权轮询能很好地处理这一问题,并将请求顺序且按照权重分配到后端。

3、ip_hash(源地址哈希法)

根据获取客户端的IP地址,通过哈希函数计算得到一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客户端要访问服务器的序号。采用源地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问。

4、随机

通过系统的随机算法,根据后端服务器的列表大小值来随机选取其中的一台服务器进行访问。

5、least_conn(最小连接数法)

由于后端服务器的配置不尽相同,对于请求的处理有快有慢,最小连接数法根据后端服务器当前的连接情况,动态地选取其中当前积压连接数最少的一台服务器来处理当前的请求,尽可能地提高后端服务的利用效率,将负责合理地分流到每一台服务器。

三、限流

Nginx的限流模块,是基于漏桶算法实现的,在高并发的场景下非常实用。

1、配置参数

1)limit_req_zone定义在http块中,$binary_remote_addr 表示保存客户端IP地址的二进制形式。

2)Zone定义IP状态及URL访问频率的共享内存区域。zone=keyword标识区域的名字,以及冒号后面跟区域大小。16000个IP地址的状态信息约1MB,所以示例中区域可以存储160000个IP地址。

3)Rate定义最大请求速率。示例中速率不能超过每秒100个请求。

2、设置限流

burst排队大小,nodelay不限制单个请求间的时间。

四、缓存

1、浏览器缓存,静态资源缓存用expire。

2、代理层缓存

五、黑白名单

1、不限流白名单

2、黑名单

好了,上面就是nginx几个常用功能,静态分离、负载均衡、限流、缓存、黑白名单等,你都了解了吗?

(完)

 | 更多精彩文章 -


  • 面试时这样介绍自己的项目经验,成功率能达到98.99%
  • 什么是消息队列?
  • 你在服务器上的一举一动,我可都看着!linux超骚技巧三分钟Get
  • 面试大厂回来后,有一些话想对 Java 后端开发说一说
  • 为什么阿里巴巴建议集合初始化时,指定集合容量大小?

-End-

喜欢本文的朋友们,欢迎扫码关注订阅号Java学习之道,收看更多精彩内容!

一 起力吧!

>>>技术讨论群<<<

你也可以顺手点个赞

nginx 转发_除了转发和负载均衡,nginx又一次让他玩出新高度相关推荐

  1. nginx配置域名转发、反向代理、负载均衡

    [Nginx那些事]系列 [Nginx那些事]nginx 安装及常用指令 [Nginx那些事]Nginx 配置文件说明 [Nginx那些事]nginx原理解析 [Nginx那些事]nginx配置实例( ...

  2. Centos6.2上做nginx和tomcat的集成及负载均衡(已实践)

    Centos6.2上做nginx和tomcat的集成及负载均衡 ---------------------------------------------------------Jdk-------- ...

  3. 用Nginx搭建IIS集群实现负载均衡

    长话短说,我们用Nginx来搭建一个简单的集群,实现Web应用的负载均衡,架构图如下: 两台Web服务器,一台静态资源服务器,因为是演示,我们以网站形式部署在本机IIS中 一台Nginx代理服务器,安 ...

  4. 千亿流量拦截控制处理技术-Nginx(安装 命令 路由匹配 负载均衡 常用配置)

    千亿流量拦截控制处理技术-Nginx Nginx使用与配置 1 什么是nginx 1.1 可大量并行处理 1.2 与 Apache 相比 1.2.1 Apache VS Nginx 1.2.2 常用w ...

  5. 使用两台服务器做负载均衡(nginx版)

    使用两台服务器做负载均衡(nginx版) 一.环境准备 在使用两台服务器做负载均衡前,首先要把环境配置好. 两台服务器上启动的项目都是一样的. 用到的项目包:前端的dist打包文件,后端的jar包: ...

  6. Nginx总结(反向代理、负载均衡、动静分离)篇

    一.Nginx简介 什么是Nginx Nginx ("engine x")是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上ngimx,的并发能力确实在同 ...

  7. 两台linux服务器负载均衡代码实现,nginx实现负载均衡,nginx负载均衡确保两台服务器数据保...

    nginx实现负载均衡,nginx负载均衡确保两台服务器数据保 一.准备篇: Nginx 负载服务器: Centos 6.2 IP:192.168.1.93 WEB服务器: Web1:192.168. ...

  8. nginx Win下实现简单的负载均衡(2)站点共享Session

    快速目录: 一.nginx Win下实现简单的负载均衡(1)nginx搭建部署 二.nginx Win下实现简单的负载均衡(2)站点共享Session 三.nginx Win下实现简单的负载均衡(3) ...

  9. Nginx教程系列五:实现负载均衡配置

    文章目录 1. 案例 1.1 环境准备 1.2 实现效果 1.3 修改Nginx配置文件 1.4 测试 2. 负载均衡策略对比 2.1 轮询 2.2 权重 2.3 iphash 2.4 fair 1. ...

最新文章

  1. AngularJS 使用ngOption实现下拉列表
  2. mysql select表达式_MySQL数据库SELECT查询表达式解析
  3. SAX解析xml (遍历DOM树各节点)
  4. 如何解决tmux中Anaconda虚拟环境下的python版本不正确的问题
  5. 您与此网站建立的连接不安全_dede网站密码忘记找回服务为先
  6. java 设置不可点击_Java Selenium webdriverwait 解决元素不可点击问题
  7. GDB Checkpoints
  8. 大鱼风控笔记 2:量化风控体系的实现要求
  9. sftp mysql_Linux下搭建SFTP服务器
  10. NVIDIA更新驱动之后,NVIDIA控制面板消失不见的解决办法
  11. jsp主板 jtp_HPlaserjtp1008不开机故障的检测与维修流程
  12. Qingdao Panda进阶之路
  13. react 如何引入打印控件 CLodop
  14. 运用人类「从众心理」!掌握简单心理学成为说服高手
  15. 超详细超快的免费图床设置教程
  16. 想在Windows上使用getopt,我教你原地起飞
  17. css扇子展开,CSS3 绝妙的扇形折叠展开加载动画
  18. Java17线程进程
  19. SDNFV Fest论坛成功举办 全景展现SDN/NFV测试成果
  20. 在centos7中基于nginx-rtmp模块的mp4播放

热门文章

  1. YOLOv3 《YOLOv3: An Incremental Improvement》论文笔记
  2. 2017年11月01日普及组 I Like Matrix!
  3. workerman events.php,workerman安装event扩展的方法介绍
  4. java temporalfield_Java Year isSupported(TemporalField)用法及代码示例
  5. android sqlitejian监听,tencent/sqlite.md · zhoujian/AndroidInterView - Gitee.com
  6. 软件开发规范和标准_社交APP,社交直播软件开发怎样才可靠了?
  7. 如何利用计算机解决问题,《用计算机解决问题的一般步骤》讲课教案
  8. 我是一只IT小小鸟读书笔记
  9. Mybatis通过colliection属性递归获取菜单树
  10. error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug...