nginx的负载均衡

1、负载均衡的作用

(1)分摊服务器集群压力
在服务器集群中,Nginx 可以将接收到的客户端请求“均匀地”(严格讲并不一定均匀,可以通过设置权重)分配到这个集群中所有的服务器上

(2)保证客户端访问的稳定性
Nginx还带有健康检查(服务器心跳检查)功能,会定期轮询向集群里的所有服务器发送健康检查请求,来检查集群中是否有服务器处于异常状态。一旦发现某台服务器异常,则剔除。

2、负载均衡配置

注意:后端服务器状态

down:当前服务器不参与负载均衡
backup:当其他节点都无法使用时的备用服务器
max_fails:允许请求失败的次数,若到达就会休眠
fail_timeout:经过max_fails次失败后,服务器的暂停时间,默认为10smax_conns:限制每个服务器的最大接收连接数

点击查看代码
proxy_pass http://backserver/;
upstream backserver{
    ip_hash;
    server 127.0.0.1:9090 down; //(down 表示单前的server暂时不参与负载)
    server 127.0.0.1:8080 weight=2; //(weight 默认为1.weight越大,负载的权重就越大)
    server 127.0.0.1:6060;
    server 127.0.0.1:7070 backup; //(其它所有的非backup机器down或者忙的时候,请求backup机器)
}

3、分配策略

  1. 轮询(默认):
    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

  2. weight(加权轮询):
    指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

  3. ip_hash:
    每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题

  4. fair:
    按后端服务器的响应时间来分配请求,响应时间短的优先分配。

  5. url_hash:
    按访问url的hash结果来分配请求,使每个url定向到同一个(对应的)后端服务器,后端服务器为缓存时比较有效。

posted @ 2022-08-17 16:18  ~城南花已开~  阅读(42)  评论(0编辑  收藏  举报