Nginx 均衡负载视频教程


三种负载方式

  • round-robin:请求以轮询,轮转的方式分发到服务器
  • least-connected:下一个请求被分发到拥有最少活动连接数的服务器
  • ip-hash:使用一个哈希函数,基于客户端 ip 地址判断下一个请求应该被分发到哪台服务器

配置 Nginx

  1. http 节点下,添加 upstream 节点

    1
    2
    3
    4
    upstream web_backend {
    server [ip:port];
    server [ip:port];
    }

  2. server 节点下的 location / 子节点中添加

    1
    2
    proxy_set header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://web_backend;

现在负载均衡初步完成,nginx 按照默认方式进行负载处理,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器宕机,则 nginx 自动剔除掉。
优点:简便、成本低廉、部署简单
缺点:可靠性低、负载不均衡
适用性:图片服务器或纯静态页面服务器

upstream 其他策略

  • down 不参与服务器,手动表示服务器宕机

    1
    2
    3
    4
    upstream web_backend {
    server [ip:port] down;
    server [ip:port];
    }

  • weight 权重策略,按比值分配

    1
    2
    3
    4
    upstream web_backend {
    server [ip:port] weight = 5;
    server [ip:port] weight = 10;
    }

  • last-connected 最少连接数策略

    1
    2
    3
    4
    5
    upstream web_backend {
    least-conn;
    server [ip:port];
    server [ip:port];
    }

  • ip_hash 来访 IP 策略

    1
    2
    3
    4
    5
    upstream web_backend {
    ip_hash;
    server [ip:port];
    server [ip:port];
    }

  • fair 第三方,按服务器响应时间来分配

    1
    2
    3
    4
    5
    upstream web_backend {
    server [ip:port];
    server [ip:port];
    fair;
    }

  • url_hash 第三方,按 url 的 hash 来分配

    1
    2
    3
    4
    5
    6
    upstream web_backend {
    server [ip:port];
    server [ip:port];
    hash $request_uri;
    hash_method crc32;
    }

  • backup 只有其他服务器宕机才访问该服务器

    1
    2
    3
    4
    upstream web_backend {
    server [ip:port] backup;
    server [ip:port];
    }

  • max_fails 允许请求失败的次数,默认为 1。当超过最大次数时,返回 proxy_next_upstream 模块定义的错误

  • fail_timeout max_fails 规定的次数达到后,暂停的时间

JavaScript array pug 语法
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×