美文网首页
Nginx(四)负载均衡

Nginx(四)负载均衡

作者: 卡戎li | 来源:发表于2020-05-02 12:58 被阅读0次

一、负载均衡简介

负载均衡(Load Balance),意思是将负载(工作任务,访问请求)进行平衡、分摊到多个操作单元(服务器,组件)上进行执行。是解决高性能,单点故障(高可用),扩展性(水平伸缩)的终极解决方案。

图片.png

二、常见的几种负载均衡实现方式

2.1 软件负载与硬件负载

分类 常见方案 优点 缺点
软件负载 apach、nginx 便宜而且简单灵活 性能不如硬件,支持万级并发
硬件负载 F5、A10、深信服 1.功能强大,支持全局负载均衡提供全面的复杂均衡算法。2.性能强悍,支持百万以上的并发。3.提供安全功能,例如防火墙,防DDos攻击等。 贵,扩展能力差,不支持动态扩容
图片.png

2.2 客户端负载与服务端负载

分类 含义 常见方案 优点 缺点
服务器负载 是指在服务器上游做服务分发 DNS域名解析负载均衡、反向代理负载均衡 / /
客户端负载 客户端自己维护一个可用服务器地址列表,在发送请求前先通过负载均衡算法选择一个将用来处理本次请求的服务器,然后再直接将请求发送至该服务器。 Ribbon / /
  • DNS域名解析负载均衡
    假设我们的域名指向了多个IP地址,当一个域名请求来时,DNS服务器机进行域名解析将域名转换为IP地址是,在1:N的映射转换中实现负载均衡。DNS服务器提供简单的负载均衡算法,但当其中某台服务器出现故障时,通知DNS服务器移除当前故障IP。

  • ribbon的默认负载均衡(轮询),当多次访问Eureka(注册中心)中同一个服务时(该服务有多个服务提供者),采用轮询方式,也可自定义配置。

三、Nginx 的4种负载均衡实现方式

3.1 轮询(默认)

//proxy.conf
upstream    node    {
    server  你的IP:8081;
    server  你的IP:8082;
    server  你的IP:8083;
}
server  {
    server_name localhost;
    listen  80;
        location    /   {
        proxy_pass  http://node;
        proxy_set_header    Host    $http_host;
        proxy_set_header    X-Real-IP   $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

3.2 权重

upstream    node    {
    server  你的IP:8081 weight = 10;
    server  你的IP:8082 weight = 20;
    server  你的IP:8083  weight = 30;
}

3.3 ip hash

upstream    node    {
    hash $request_uri;
    server  你的IP:8081;
    server  你的IP:8082;
    server  你的IP:8083;
}

3.4 最少连接

least_conn指令实际的含义就是,选取活跃连接数与权重weight的比值最小者为下一个处理请求的server。当然,上一次已选的server和已达到最大连接数的server照例不在选择的范围。

upstream backend {
    least_conn;
    server 10.10.10.2 weight=2;
    server 10.10.10.4 weight=1;
    server 10.10.10.6 weight=1; 
}

假如上一个请求选择了第二台10.10.10.4,下一个请求到来,通过比较剩下可用的server的conns/weight值来决定选哪一台。

如果10.10.10.2连接数为100,10.10.10.6连接数为80,因为权重分别是2和1,因此计算结果
100/2=50, 80/1 =80。因为 50 < 80 所以选择第一台而不选第三台。尽管连接数第一台要大于第三台。

参考博客:
https://www.cnblogs.com/fanBlog/p/10936190.html
https://www.cnblogs.com/gucb/p/11237765.html

相关文章

  • Nginx负载均衡小知识

    Nginx 负载均衡配置Nginx 重试次数限制Nginx 超时重试 Nginx 负载均衡 负载均衡策略 roun...

  • Nginx负载均衡、ssl原理、生成ssl密钥对、Nginx配置

    目录 一、Nginx负载均衡二、ssl原理三、生成ssl密钥对四、Nginx配置ssl 一、Nginx负载均衡 如...

  • 四层&七层负载均衡

    四层&七层负载均衡 负载均衡层次归类nginx应用层七层负载均衡LVSTCP层传输层四层负载均衡 常用的负载均衡有...

  • Nginx-进阶学习

    目录: Nginx集群和负载均衡 一、Nginx集群和负载均衡 1、集群 2、负载均衡-权重(1)负载均衡-轮训:...

  • Nginx (4)

    Nginx之负载均衡 Nginx 通过Upstream 模块进行负载均衡。 upstream 支持的负载均衡算法N...

  • Linux学习笔记-Nginx配置参数详细中文说明

    Nginx多台服务器实现负载均衡: 1.Nginx负载均衡服务器: Nginx负载均衡服务器的nginx.conf...

  • Nginx负载均衡配置

    基于轮询(Round Robin)的负载均衡配置 Nginx的负载均衡策略默认就是轮询。 Nginx负载均衡策略支...

  • linux学习--week17--nginx-lnmp

    负载均衡2.1 负载均衡与反向代理区别2.2nginx 7层负载2.3 nginx 7层负载2.4 nginx 4...

  • 3.Nginx的反向代理

    nginx反向代理 反向代理就是负载均衡负载均衡分为四层负载和七层负载四层负载:基于IP+端口的负载七层负载:基于...

  • Nginx使用

    一.nginx反向代理 二.nginx负载均衡 三.动静分离 四.总结

网友评论

      本文标题:Nginx(四)负载均衡

      本文链接:https://www.haomeiwen.com/subject/dohkghtx.html