您当前的位置:首页 > 计算机 > 服务器 > Nginx

Nginx——upstream指令参数

时间:06-16来源:作者:点击数:

我们在配置nginx时,会根据本身的项目服务的需求量,以及实际情况去配置和处理一些实际问题,这里介绍一下upstream指令,这个指令是用于配置负载均衡的,具体如下:

upstream指令参数 weight

#  默认的负载均衡的策略是轮询。

# weight参数是主要配置负载均衡策略使用的, 称为负载均衡的 “权重”策略

upstream tomcats {
    server 192.168.1.100:8080 weight=1     # 占比最小
    server 192.168.1.101:8080 weight=3     # 相对于三台服务器,该服务器接收的请求占比最大
    server 192.168.1.102:8080 weight=2     # 其次
}

upstream指令参数 max_conns

# worker进程设置1个,便于测试观察成功的连接数
worker_presses 1;

upstream tomcats {
    server 192.168.1.100:8080 max_conns=2
    server 192.168.1.101:8080 max_conns=2
    server 192.168.1.102:8080 max_conns=2
}

upstream指令参数 slow_start

商业版,需要付费

upstream tomcats {
        server 192.168.1.100:8080 weight=6 slow_start=60s;
#       server 192.168.1.101:8080;
        server 192.168.1.102:8080 weight=2;
        server 192.168.1.103:8080 weight=2;
}

注意:

  • 该参数不能使用在hash和random load balancing中;
  • 如果在upstream中只有一台server。则该参数失效。

upstream指令参数 down

down用于标记服务节点不可用:

upstream tomcats {
        server 192.168.1.100:8080 down;
#       server 192.168.1.101:8080;
        server 192.168.1.102:8080 weight=1;
        server 192.168.1.103:8080 weight=1;
}

upstream指令参数 backup

backup表示当前服务器节点是备用机,只有在其他的服务器都宕机以后,自己才会加入到集群中,被用户访问到:

upstream tomcats {
        server 192.168.1.100:8080 backup;
#       server 192.168.1.101:8080;
        server 192.168.1.102:8080 weight=1;
        server 192.168.1.103:8080 weight=1;
}

注意:

  • backup参数不能使用在hash和random load balancing 中。

upstream指令参数 max_fails、fail_timeout

max_fails:表示失败几次,则标记server以宕机,剔出上有服务。

fail_timeout:表示失败的重试时间。

upstream tomcats {
        server 192.168.1.100:8080 max_fails=2 fail_timeout=15s;
#       server 192.168.1.101:8080;
        server 192.168.1.102:8080 weight=1;
        server 192.168.1.103:8080 weight=1;
}
max_fails=2 fail_timeout=15s

则代表在15秒内请求某一server失败达到2次后,则认为该server已经挂了或者宕机了,随后再过15秒,这15秒内不会有新的请求到达刚刚挂掉的节点上,而是请求到正常运作的server,15秒后会再有新请求尝试连接挂掉的server,如果还是失败,重复上一过程,直到恢复。

参考资料:

还有一些企业版的配置参数,可以参考官网文档:nginx documentation

Keepalived提高吞吐量

keepalived:设置长连接处理的数量

proxy_http_version:设置长连接http版本为1.1

proxy_set_header:清除connection header信息

upstream tomcats {
#       server 192.168.1.100:8080 max_fails=2 fail_timeout=1s;
        server 192.168.1.101:8080;
#       server 192.168.1.102:8080 weight=1;
#       server 192.168.1.103:8080 weight=1;
        keepalive 32;
}

server {
        listen       80;
        server_name  www.tomcats.com;

        location / {
            proxy_pass  http://tomcats;
            proxy_http_version 1.1;
            proxy_set_header Connection "";
        }
    }
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门