nginx负载均衡

ccforevercn<1253705861@qq.com> 2021-03-22 11:10:45

配置负载均衡

http {
    # upstream配置
    upstream upstream_name{
        server ip1:端口1;
        server ip2:端口2;
        server ip3:端口3;
    }

    # proxy_pass配置
    server {
        listen       80;  # 监听端口
        server_name  localhost; # 域名

        location / {
            proxy_pass http://upstream_name; # 转发到upstream_name
        }
    }
}

注意:proxy_pass后面转发的upstream_name必须是upstream配置中的upstream_name

nginx负载均衡策略(4种)

轮询(默认)

fail_timeout:和max_fails结合使用

max_fails:设置在fail_timeout参数设置的时间内最大失败次数

fail_time:当前服务器停机时间,默认为10s

backup:当前服务器为备用服务器,主服务器停止后,请求会转发到当前服务器

down:当前服务器永久停机

案例:

http {
    upstream upstream_name{
        server ip1:端口1 fail_timeout=10s max_fails=2; # 当前服务器10秒内请求失败总次数为2次数,nginx认为当前服务器为停机状态
        server ip2:端口2 fail_time=10s; # 当前服务器停机10秒
        server ip3:端口3 backup; # 当前服务器为备用服务器,主服务器停机后把请求转发到当前服务器
        server ip3:端口3 down; # 当前服务器永久停机
    }
}

权重

weight:权重,默认值为1,数值越大,转发的请求就越多

案例:

http {
    upstream upstream_name{
        server ip1:端口1 weight=3;
    }
}

ip_hash

按照客户端的ip地址分配方式,同一个ip访问请求都会固定到同一个服务器(客户端ip第一次请求ip3:端口3,后面这个客户端ip请求过来都会请求ip3:端口3的服务器),不能和backup同时使用,如果有服务器不需要,只能手动停掉

案例

http {
    upstream upstream_name{
	ip_hash;
	server ip1:端口1 weight=3; # nginx1.3.1版本之前如果设置了ip_hash策略,不能使用weight
    }
}

least_conn

把请求转发到连接数少的服务器

案例

http {
    upstream upstream_name{
	least_conn;
	server ip1:端口1 weight=3;
    }
上一篇: nginx代理
下一篇: nginx配置ssl模块
相关文章
返回顶部小火箭