5. Nginx七层负载均衡的配置、七层负载均衡的作用

发布时间:2022-09-11 03:30

1.Nginx负载均衡基本概述

  1. 为什么要是用负载均衡
当我们的web服务器直接面向用户,往往要承受大量的并发请求,
单台服务器难以负荷,我使用多台web服务器组成集群,前端使用Nginx负载均衡,
将请求分散的打到我们的后端集群中,实现负载的分支.
那么会大大的提升系统的吞吐率,请求性能,高容宰.

往往我们就出的最多的是SLB(Server Load Balance)负载均衡,
实现最多的也是SLB,那么SLB他的调度节点和服务节点通常实在一个地域里面.
那么它在这个小得逻辑地域里面决定了对部分服务的实时性,响应性是非常好的.

所以说当海量用户请求过来以后,他同样是请求调度节点,
调度节点将用户的请求转发给后端对应的服务节点,
服务节点处理完请求后宰转发给调度节点,调度节点最后响应给用户节点,
这样实现一个均衡的作用,那么Nginx是一个典型的SLB
  1. 负载均衡的叫法:
负载均衡
负载
Load Balance
LB
云叫法:
SLB 阿里云负载均衡
QLB 青云负载均衡
CLB 腾讯云负载均衡
ULB UClound负载均衡
  1. 常见的负载均衡的软件
Nginx
Haproxy
LVS
  1. 负载均衡的应用场景一:四层负载
所谓四层负载均衡是指OSI七层模型中的传输层,
那么传输层Nginx已经支持TCP/IP的控制,
所以只需要对客户端的请求进行TCP/IP协议的包转发就可以实现负载,
那么他的好处是性能非常快,
只需要底层进行应用处理,而不需要进行一些复杂的逻辑.
  1. 负载均衡的应用场景二:七层负载
七层负载均衡是在应用层,那么他可以完成后很多应用方面的协议请求,
当然四层有四层的好处,七层七层的好处,四层就不支持协议的转发,(http,https,DNS等)只支持IP,但是它的速度快.
应用层虽然没有四层负载快,但是支持很多功能,比如说他支持http信息的改写、头部信息的改写、(意识是,七层代理着用户往后请求的时候把我们用户请求的头部信息加上,长连接协议也可以修改等)、
安全应用规则控制、URL匹配规则控制、以及转发、rewrite等一些规则,
所以在应用层的服务里面,可以做的内容就更多了。Nginx是一个典型的七层负载均衡
  1. 四层负载均衡与七层负载均衡的区别:
四层负载均衡数据包在底层就进行了转发,而七层负载均衡数据则是在最顶层进行转发,
由此可以看出,七层负载效率没有四层负载均衡效率高。
但是七层负载均衡更贴近与服务,如:http就是七层协议,我们可以用Nginx做回话保持,
URL路劲规则匹配、头部改写等等,这些四层是无法实现的

注意:四层负载均衡不识别域名,七层负载均衡识别域名


2.Nginx负载均衡匹配场景

  • Nginx要实现负载均衡需要用到proxy_pass代理模块配置

  • Nginx负载均衡与nginx代理不同地方在于,Nginx的一个location仅能代理一台服务器,(可以说是后端的一个location一个匹配规则,你想要访问/admin,那我给你抛到后端的那台服务器下的某一个位置中去),而Nginx负载均衡是将客户端请求代理转发至一组upstream虚拟服务池。(反向代理一个location只能匹配后端的一个server,那我们的负载均衡就不一样了,用定义的方式把后端的服务放到一个组里面,使用这个组需要一个模块,upstream就是来定义地址池的,也就是说我先把后端的所有你想要负载的节点,我给你定义到一个地址池里面去这个地址池叫upstream,upstream存放着所有的地址。当用户再去请求server_name时,就不是请求一个服务了,而是直接请求一个组名就可以了,uptream默认会轮训匹配,一个一个的放下找,直到找到想要的地址为止。负载均衡有两个模块,一个是proxy_pass模块、一个是upstream模块)

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号