• 负载均衡


    Nginx负载均衡是通过upstream模块来实现的。Nginx负载均衡内置实现了三种负载策略:

    1、 轮循(默认)Nginx根据请求次数,将每个请求均匀分配到每台服务器。

    2、最少连接,将请求分配给连接数最少的服务器。Nginx会统计哪些服务器的连接数最少。

    3、IP Hash,绑定处理请求的服务器。第一次请求时,根据该客户端的IP算出一个HASH值,将请求分配到集群中的某一台服务器上。后面该客户端的所有请求,都将通过HASH算法,找到之前处理这台客户端请求的服务器,然后将请求交给它来处理。


    Nginx的负载均衡配置非常简单,在反向代理的基础上,只要在upstream中添加几个server配置即可。

    命令形式:

    1
    server ip:port 参数1 参数2 参数3 ...;

    两个参数之间使用空格分开。

    示例:

    1
    2
    3
    4
    upstream my_server {                                                        
        server 127.0.0.1:8080;      
        server 127.0.0.1:8090;         
    }  

    将请求发给现台tomcat处理,其中一台挂了,还可以正常访问。


    server后的其它参数说明:

    weight 处理请求次数,默认为0,默认是平均分配请求给各server,如要指定,使用=来指定,如weight=2;如下所示:

    1
    2
    3
    4
    upstream my_server {                                                        
        server 127.0.0.1:8080 weight=2;      
        server 127.0.0.1:8090 weight=1;        
    }  

    如果有6次请求,808端口的将处理2/6次,8090端口的将处理1/6次。

    max_fails 最大请求失败次数,默认为1。某台Server允许请求失败的次数,超过最大次数后,在fail_timeout时间内,新的请求将不会分配给这台机器。如果设置为0,Nginx会将这台Server置为永久无效状态,然后将请求发给定义了proxy_next_upstream, fastcgi_next_upstream, uwsgi_next_upstream, scgi_next_upstream, and memcached_next_upstream指令来处理这次错误的请求。

    fail_timeout 失败请求超数,默认为10秒。某台Server达到max_fails次失败请求后,在fail_timeout期间内,nginx会认为这台Server暂时不可用,不会将请求分配给它。

    示例:

    1
    2
    3
    4
    upstream my_server {                                                        
        server 127.0.0.1:8080 max_fails=3 fail_timeout=15;   
        server 127.0.0.1:8090 ;
    }  

    backup 备份机,所有服务器挂了之后才会生效。

    示例:

    1
    2
    3
    4
    upstream my_server {                                                        
        server 127.0.0.1:8080 ;   
        server 127.0.0.1:8090 backup;
    }  

    max_conns 限制分配给某台Server处理的最大连接数量,超过这个数量,将不会分配新的连接给它。默认为0,表示不限制。

    示例:

    1
    2
    3
    4
    upstream my_server {                                                        
        server 127.0.0.1:8080 ;   
        server 127.0.0.1:8090 max_conns=1000;
    }  

    down 标识某一台server不可用。

    示例:

    1
    2
    3
    4
    upstream my_server {                                                        
        server 127.0.0.1:8080 ;   
        server 127.0.0.1:8090 down;
    }
  • 相关阅读:
    Java8-Stream-No.10
    Java8-Stream-No.09
    Java8-Stream-No.08
    Java8-Stream-No.07
    Java8-Stream-No.06
    Java8-Stream-No.05
    Java8-Stream-No.04
    Java8-Stream-No.03
    Java8-Stream-No.02
    Java8-Stream-No.01
  • 原文地址:https://www.cnblogs.com/max-hou/p/9124793.html
Copyright © 2020-2023  润新知