nginx upstream 6种负载均衡策略介绍

发布时间:2023年12月21日

upstream参数

参数描述
service反向服务地址加端口
weight权重
max_fails失败多少次,认为主机已经挂掉,踢出
fail_timeout踢出后重新探测时间
backup备用服务
max_conns允许最大连接数
slow_start当节点恢复,不立即加入

负载均衡策略

轮询(默认)

每个请求会按照时间逐一分配到不同的后端服务器上

upstream test {
    server 192.168.1.10:8080;
    server 192.168.1.11:8080;
}

也就是说我的第一个请求会落在10服务上,第二个会落在11,第三个10,第四个11…

权重

权重越大,访问的几率就越大

如果服务器处理性能有差异,可以降性能好的,权重大一点;处理性能低的权重小一点。

upstream test {
    server 192.168.1.10:8080 weight=7;
    server 192.168.1.11:8080 weight=3;
}
ip_hash

每个请求按访问的iphash结果分配,这样每台服务器固定一个后端服务

upstream test {
    ip_hash;
    server 192.168.1.10:8080;
    server 192.168.1.11:8080;
}

这个一般用于session数据的保存,因为服务之间不能切换,不然切换服务后session会失效,固定后端服务,保证session不丢失。

least_conn最少连接

把连接转发到较少的后端服器上

upstream test {
    least_conn;
    server 192.168.1.10:8080;
    server 192.168.1.11:8080;
}
fair

公平地按照后端服务器的响应时间(rt)来分配请求,响应时间(rt)小的后端服务器优先分配请求。

upstream test {
    fair;
    server 192.168.1.10:8080;
    server 192.168.1.11:8080;
}
url_hash

与 ip_hash类似,但是按照访问 url 的 hash 结果来分配请求,使得每个 url 定向到同一个后端服务器,主要应用于后端服务器为缓存的场景下。

upstream test {
    hash $request_uri;
    #指定hash算法
    hash_method crc32;
    server 192.168.1.10:8080;
    server 192.168.1.11:8080;
}
文章来源:https://blog.csdn.net/youxiaxiaomage/article/details/135085112
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。