Nginx up_stream的配置和使用

1 指令参数

1.1 max_conns

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

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

1.2 slow_start

upstream tomcats {
server 192.168.1.173:8080 weight=6 slow_start=60s;
	server 192.168.51.5:8080;
	server 192.168.51.6:8080 weight=2;
	server 192.168.51.7:8080 weight=2;
}
  • 该参数不能使用在 hash 和 random load balancing 中。
  • 如果在 upstream 中只有一台 server,则该参数失效

1.3 down、backup

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

upstream tomcats {
	server 192.168.51.5:8080 down;
	server 192.168.51.6:8080 weight=1;
	server 192.168.51.7:8080 weight=1;
}

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

upstream tomcats {
	server 192.168.51.5:8080 backup;
	server 192.168.51.6:8080 weight=1;
	server 192.168.51.7:8080 weight=1;
}
  • backup 参数不能使用在 hashrandom load balancing 中。

1.4 max_fails、fail_timeout

max_fails :表示失败几次,则标记server已宕机,剔出上游服务。
fail_timeout :表示失败的重试时间。

max_fails=2 fail_timeout=15s

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

2 Keepalived 提高吞吐量

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

upstream tomcats {
	# server 192.168.51.5:8080 max_fails=2 fail_timeout=1s;
	server 192.168.51.5:8080;
	# server 192.168.51.6:8080 weight=1;
	# server 192.168.51.7: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 "";
	}
}

3 负载均衡

3.1 ip_hash

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

If one of the servers needs to be temporarily removed, it should be marked with the down parameter in order to preserve the current hashing of client IP add
upstream tomcats {
	ip_hash;
	server 192.168.51.5:8080;
	server 192.168.51.6:8080 down;
	server 192.168.51.7:8080;
}

3.2 url_hash 与 least_conn

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

upstream tomcats {
	# url hash
	hash $request_uri;
	# 最少连接数
	# least_conn
	server 192.168.51.5:8080;
	server 192.168.51.6:8080;
	server 192.168.51.7:8080;
} 

server {
	listen 80;
	server_name www.tomcats.com;
	location / {
		proxy_pass http://tomcats;
	}
}

4 相关信息

  • 博文不易,辛苦各位猿友点个关注和赞,感谢

猜你喜欢

转载自blog.csdn.net/qq_15769939/article/details/113429383
今日推荐