8.1负载均衡结构图

Nginx是一个典型的七层SLB
image.png

8.2负载均衡按照地域分类

8.2.1全局负载均衡GSLB

image.png

8.2.2局部负载均衡SLB(用的最多)

image.png

8.3负载均衡按层分类

8.3.1四层负载均衡

layer4:在传输层已经可以支持到TCP/IP的控制了,只需要对客户端的请求进行TCP/IP的包转发,就可以实现复制均衡,
优势:性能非常快,只需要对底层进行应用处理,而不需进行复杂的逻辑,进行包转发就行了。

image.png

8.3.2七层负载均衡

在应用层进行处理,可以完成很多应用层的处理,比如HTTP应用层负载均衡,实现HTTP的改写,头信息的改写,安全应用规则的控制,以及转发
image.png
8.4Nginx负载均衡实现原理
将所有的客户端的请求代理,然后转发到对应后端的服务器上,不是转发到一台,而是转发到一组虚拟的服务池(upstream server),服务池通过轮询不断的分发到服务器上面,
image.png

8.5配置语法

Syntax: upstream name{….}
Default:-
Context:http
注:配置到server层以外
8.6实例
第一台服务器中建立三个文件,分别是code1,code2,code3,里面是三个静态文件,在conf.d文件下分别创建server1.conf server2.conf server3.conf,分别监听8001,8002,8003的端口,然后分别访问自己的静态文件

  1. upstream zbc{#名字自定义
  2. server 116.62.103.228:8001;
  3. server 116.62.103.228:8002;
  4. server 116.62.103.228:8003;
  5. }
  6. server{
  7. listen 80;
  8. server_name: www.text.com
  9. location / {
  10. proxy_pass httP://zbc;
  11. includ proxy_params;#之前的通用配置
  12. }
  13. }

然后访问http://www.text.com,不断刷新就可以看到是三个不同页面了
iptables -I INPUT -p tcp —dport 8002 -j DROP //将访问8002端口的链接drop掉

8.6 upstream举例

  1. upstream backend{#backen1.example.com //支持域名和ip访问
  2. server backend1.example.com weigh=5; #weigh 加入权重,权重越大,几率越高
  3. server backend2.example.com:8080;
  4. server unix:/tmp/backend3;
  5. server backup1.example.com:8080 backup; #backup 表示这是一个备份结点
  6. server backup2.example.com:8080 backup;
  7. }

image.pngimage.png8.7Nginx 调度算法
image.png