Nginx 一些负载均衡配置

2022-03-07  本文已影响0人  YonchanLew

max_conns
限制每台server的连接数,用于保护避免过载,可起到限流作用。

# worker进程设置1个,便于测试观察成功的连接数 
worker_processes 1; 
upstream tomcats { 
  server 192.168.1.173:8080 max_conns=2; 
  server 192.168.1.174:8080 max_conns=2; 
  server 192.168.1.175:8080 max_conns=2; 
}

slow_start
权重慢慢升级,从0开始,一定时间后到指定权重
商业版,需要付费
该参数不能使用在 hash 和 random load balancing 中。
如果在 upstream 中只有一台 server,则该参数失效。

upstream tomcats { 
  server 192.168.1.173:8080 weight=6 slow_start=60s;  
  server 192.168.1.174:8080 weight=2; 
  server 192.168.1.175:8080 weight=2; 
}

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

upstream tomcats { 
  server 192.168.1.173:8080 down; 
  server 192.168.1.174:8080 weight=1; 
  server 192.168.1.175:8080 weight=1;
}

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

upstream tomcats { 
  server 192.168.1.173:8080 backup; 
  server 192.168.1.174:8080 weight=1; 
  server 192.168.1.175:8080 weight=1; 
}

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

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

fail_timeout
表示失败的重试时间。

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

提高吞吐量
keepalived : 设置长连接处理的数量
proxy_http_version :设置长连接http版本为1.1
proxy_set_header :清除connection header 信息

upstream tomcats { 
  server 192.168.1.190:8080; 
  keepalive 32; 
}
server {
  listen 80; 
  server_name www.tomcats.com; 
  location / { 
    proxy_pass http://tomcats; 
    proxy_http_version 1.1; 
    proxy_set_header Connection ""; 
  } 
}

ip_hash
可以保证用户访问可以请求到上游服务中的固定的服务器,前提是用户ip没有发生更改。
使用ip_hash的注意点:
不能把后台服务器直接移除,只能标记 down .

upstream tomcats { 
  ip_hash; 
  server 192.168.1.173:8080; 
  server 192.168.1.174:8080 down; 
  server 192.168.1.175:8080; 
}

url_hash
根据每次请求的url地址,hash后访问到固定的服务器节点。

upstream tomcats { 
  # url hash 
  hash $request_uri; 
  # 最少连接数 
  # least_conn 
  server 192.168.1.173:8080; 
  server 192.168.1.174:8080; 
  server 192.168.1.175:8080; 
}

least_conn
最少连接数的优先

upstream tomcats { 
  least_conn; 
  server 192.168.1.173:8080; 
  server 192.168.1.174:8080; 
  server 192.168.1.175:8080; 
}
上一篇下一篇

猜你喜欢

热点阅读