【中间件】Nginx 6种负载均衡策略

【中间件】Nginx 6种负载均衡策略

经验文章nimo972025-07-08 19:58:323A+A-

Ngnix是一款高性能反向代理服务器,本文主要介绍Nginx的6种负载均衡策略。

Nginx常用的6种负载均衡策略:

1RR(round robin :轮询 默认)

每个请求按时间顺序逐一分配到不同的后端服务器,也就是说第一次请求分配到第一台服务器上,第二次请求分配到第二台服务器上,如果只有两台服务器,第三次请求继续分配到第一台上,这样循环轮询下去,也就是服务器接收请求的比例是 1:1, 如果后端服务器down掉,能自动剔除。轮询是默认配置,不需要太多的配置。

同一个项目分别使用8081和8082端口启动项目

upstream web_servers {
   server localhost:8081;
   server localhost:8082;
}




server {
    listen       80;
    server_name  localhost;
    #access_log  logs/host.access.log  main;
    location / {
        proxy_pass http://web_servers;
        proxy_set_header Host $host:$server_port;
    }

2 热备

假设有2台服务器,当一台服务器发生事故时,才启用第二台服务器给提供服务。服务器处理请求的顺序:主服务器突然A挂了,服务器处理请求的顺序:切换到备用服务器B。

upstream web_servers {
      server 127.0.0.1:7878; 
      server 192.168.10.121:3333 backup;  #热备     
    }

3 权重

根据配置的权重的大小而分发给不同服务器不同数量的请求。如果不设置,则默认为1。下面服务器的请求顺序为:A-B-B。

upstream web_servers {
    server localhost:8081 weight=1;
    server localhost:8082 weight=2;
}

4 ip_hash

这样每个ip地址固定访问一个后端服务器,可以解决session的问题。

upstream test {
    ip_hash;
    server localhost:8080;
    server localhost:8081;
}

5 fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。这个配置是为了更快的给用户响应。

upstream backend {
    fair;
    server localhost:8080;
    server localhost:8081;
}

6 url_hash(第三方)

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

upstream backend {
    hash_method crc32;
    hash $request_uri;
    server localhost:8080;
    server localhost:8081;
}

以上6种负载均衡各自适用不同情况下单独或者混合使用,可以根据实际情况选择使用,fair和url_hash需要安装第三方模块才能使用。

--END--

欢迎关注【辉哥传书vlog】头条号,喜欢记得点赞、收藏、评论、转发哦!

点击这里复制本文地址 以上内容由nimo97整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

尼墨宝库 © All Rights Reserved.  蜀ICP备2024111239号-7