Nginx 实现负载均衡

一、nginx支持的四种负载均衡策略
  • 轮询:将请求依次轮询发给每个服务器。
  • 最少链接:将请求发送给持有最少活动链接的服务器。
  • ip哈希:通过哈希函数决定请求发送给哪个服务器。
  • 权重:服务器的权重越高,处理请求的概率越大。
二、轮询负载均衡

在nginx.conf配置文件中添加如下配置

http {
    upstream CashServers {
        server 192.168.1.252;
        server 192.168.1.253;
    }
    server {
        listen 80;
        location / {
            proxy_pass http://CashServers;
        }
    }
}
需要注意以下几点:
  1. 缺省配置就是轮询策略;
  2. nginx负载均衡支持http和https协议,只需要修改 proxy_pass后协议即可;
  3. nginx支持FastCGI, uwsgi, SCGI,memcached的负载均衡,只需将 proxy_pass改为fastcgi_pass, uwsgi_pass, scgi_pass,memcached_pass即可。
  4. 此策略适合服务器配置相当,无状态且短平快的服务使用。
三、最少链接负载均衡
http {
    upstream CashServers {
      least_conn;
        server 192.168.1.252;
        server 192.168.1.253;
    }
    server {
        listen 80;
        location / {
            proxy_pass http://CashServers;
        }
    }
}
需要注意以下几点
  1. 最少链接负载均衡通过least_conn指令定义;
  2. 此负载均衡策略适合请求处理时间长短不一造成服务器过载的情况;
四、ip哈希负载均衡
http {
    upstream CashServers {
      ip_hash;
        server 192.168.1.252;
        server 192.168.1.253;
    }
    server {
        listen 80;
        location / {
            proxy_pass http://CashServers;
        }
    }
}
需要注意以下几点
  1. ip哈希负载均衡使用ip_hash指令定义;
  2. nginx使用请求客户端的ip地址进行哈希计算,确保使用同一个服务器响应请求;
  3. 此策略适合有状态服务,比如session;
四、权重负载均衡
http {
    upstream CashServers {   
        server 192.168.1.252 weight=1;   
        server 192.168.1.253 weight=2;
    }
    server {
        listen 80;
        location / {
            proxy_pass http://CashServers;
        }
    }
}
需要注意以下几点
  1. 权重负载均衡需要使用weight指令定义;
  2. . 权重越高分配到需要处理的请求越多;
  3. . 此策略可以与最少链接负载和ip哈希策略结合使用;
  4. . 此策略比较适合服务器的硬件配置差别比较大的情况;
六、健康检测

nginx内置了针对服务器的健康检测机制,如果特定服务器请求失败,则nginx即可进行标记待下次就不会请求分配给它。max_fails定义失败指定次数后进行标记服务器不可用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值