当前位置:
首页
文章
服务器
详情

nginx负载均衡

一般的宣传站并不需要处理负载均衡,但对于大数据高并发的网站就需要了,利用负载均衡可以将请求适当的分发到应用服务器集群中的一台台服务器上,以缓解服务器压力。

Nginx负载均衡配置

# upstream 指定后端服务器地址
# weight 设置权重
# server 中会将 http://abc 的请求转发到 upstream 池中
upstream abc {
    server 127.0.0.1:80 weight=10;
    server 127.0.0.1:81 weight=1;
    server 127.0.0.1:82 weight=1;
}
server {
    location / {
        proxy_pass http://abc
    }
}

后端状态配置

  • down:当前服务器不参与负载均衡
  • backup:当其他节点都无法使用时的备用服务器
  • max_fails:允许请求失败的次数,若到达就会休眠
  • fail_timeout:经过max_fails次失败后,服务器的暂停时间,默认为10s
  • max_conns:限制每个服务器的最大接收连接数
upstream abc {
    server 127.0.0.1:83 down;
    server 127.0.0.1:84 backup;
    server 127.0.0.1:85 max_fails=3 fail_timeout=10s;
    server 127.0.0.1:86 max_conns=1000;
}

分配方式

  • 轮询(默认),每个请求按照时间顺序轮流分配到不同的后端服务器,如果某台后端服务器宕机,Nginx 轮询列表会自动将它去除掉。
  • weight(加权轮询),轮询的加强版,weight 和访问几率成正比,主要用于后端服务器性能不均的场景。
  • ip_hash,每个请求按照访问 IP 的 hash 结果分配,这样每个访问可以固定访问一个后端服务器。
  • url_hash,按照访问 URL 的 hash 结果来分配请求,使得每个URL定向到同一个后端服务器上,主要应用于后端服务器为缓存时的场景。
  • 自定义hash,基于任意关键字作为 hash key 实现 hash 算法的负载均衡
  • fair,按照后端服务器的响应时间来分配请求,响应时间短则优先分配。

gRPC负载均衡

upstream grpctest {
    server 127.0.0.1:50051 weight=5;
    server 127.0.0.1:50052 weight=5;
}

server {
    listen 5005 http2;

    access_log /var/webos/logs/nginx/grpctest.log;

    location / {
        grpc_pass grpc://grpctest;
    }
}

grpc server两个
127.0.0.1:50051
127.0.0.1:50052

grpc client
连接127.0.0.1:5005

免责申明:本站发布的内容(图片、视频和文字)以转载和分享为主,文章观点不代表本站立场,如涉及侵权请联系站长邮箱:xbc-online@qq.com进行反馈,一经查实,将立刻删除涉嫌侵权内容。

同类热门文章