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

createh515小时前技术教程1

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】头条号,喜欢记得点赞、收藏、评论、转发哦!

相关文章

30s 就可以掌握的 Nginx 片段

作为一枚程序员,日常研发少不了上线部署工作。一旦走上“基建”的道路,你就会发现 Nginx 是你绕不开的一个坎。毫不夸张的说:Nginx 能顶半边天!也许你会反驳,我们有专业的运维( OP )团队,不...

Docker镜像最稳定解法?基于VPS服务器自建加速

大家好,我是羊刀仙~文接上回,介绍了通过Cloudflare和域名自行部署免费的Docker加速服务,不过有的小伙伴可能因为地域或各种问题出现加速失败的情况。文章Docker镜像提取失败?10分钟快速...

Nginx利用Consul实现动态负载均衡

首先,说声抱歉哈~~,最近更新的比较慢,不是工作比较忙,而是自己变懒了,对不住各位了一. 前言由于最近手中的项目在不断更新迭代,经常对服务做些调整,一调整就需要改配置文件,真是烦死了,这里先简单说下我...

宝塔面板重定向设置总结

概述宝塔面板是一款功能强大、易于使用的服务器管理软件,适用于个人站长和企业运维人员使用。最近使用宝塔面板把个人网站重新搭建起来,总结一下在此期间遇到的域名重定向的问题。根域名重定向到 www一、为站点...