美文网首页
nginx负载均衡

nginx负载均衡

作者: 懒人程序猿 | 来源:发表于2020-06-28 17:44 被阅读0次

    nginx实现负载均衡的模式

    1、轮询

    每个请求按时间顺序逐一分配到不同的后端服务器,也是nginx的默认模式。轮询模式的配置很简单,只需要把服务器列表加入到upstream模块中即可。
    下面的配置是指:负载中有三台服务器,当请求到达时,nginx按照时间顺序把请求分配给三台服务器处理。

    upstream serverList {
        server 127.0.0.1;
        server 127.0.0.2;
        server 127.0.0.3;
    }
    
    2、ip_hash

    每个请求按访问IP的hash结果分配,同一个IP客户端固定访问一个后端服务器。可以保证来自同一ip的请求被打到固定的机器上,可以解决session问题。
    下面的配置是指:负载中有三台服务器,当请求到达时,nginx优先按照ip_hash的结果进行分配,也就是同一个IP的请求固定在某一台服务器上,其它则按时间顺序把请求分配给三台服务器处理。

    upstream serverList {
        ip_hash
        server 127.0.0.1;
        server 127.0.0.2;
        server 127.0.0.3;
    }
    
    3、url_hash

    按访问url的hash结果来分配请求,相同的url固定转发到同一个后端服务器处理。

    upstream serverList {
        server 127.0.0.1;
        server 127.0.0.2;
        server 127.0.0.3;
        hash $request_uri;
        hash_method crc32;
    }
    
    4、fair

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

    upstream serverList {
        server 127.0.0.1;
        server 127.0.0.2;
        server 127.0.0.3;
        fair;
    }
    
    5、least_conn

    使用最少连接的负载平衡,nginx将尝试不使繁忙的应用程序服务器因过多的请求而过载,而是将新请求分配给不太繁忙的服务器。

    upstream serverList {
        least_conn;
        server 127.0.0.1;
        server 127.0.0.2;
        server 127.0.0.3;
    }
    

    参数

    1、down

    表示单前的server暂时不参与负载

    2、weight

    默认为1.weight越大,负载的权重就越大。

    3、max_fails

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

    4、fail_timeout

    max_fails 次失败后,暂停的时间。

    5、backup

    其它所有的非backup、down机器忙的时候,请求backup机器。所以这台机器压力会最轻。

    举例
    upstream serverList {
        # 暂时不参与负载
        server 127.0.0.1:8080 down;
        # 权重5
        server 127.0.0.2:8080 weight=5;
        # 权重3,允许请求失败次数为3请求失败后暂停时间30s
        server 127.0.0.3:8080 weight=3 max_fails=3 fail_timeout=30s;
        # 其它所有的非backup、down机器忙的时候,请求backup机器
        server 127.0.0.4:8080 backup;
    }
    
    server {
        listen 80;
        server_name www.gin.com gin.com;
        
        location / {
            proxy_pass http://serverList;
        }
    }
    

    相关文章

      网友评论

          本文标题:nginx负载均衡

          本文链接:https://www.haomeiwen.com/subject/ljiwfktx.html