2025年4月15日 星期二 乙巳(蛇)年 正月十六 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 服务器 > Nginx

Nginx——upstream指令参数

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

我们在配置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 "";
  • }
  • }
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门