upstream指令参数
1.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;
}
2. slow_start
设置服务器权重从0恢复到标准值的时间,默认值为0,缓慢的启动
upstream tomcats {
server 192.168.1.173:8080 weight=6 slow_start=60s;
# server 192.168.1.190:8080;
server 192.168.1.174:8080 weight=2;
server 192.168.1.175:8080 weight=2;
}
注意:该参数不能使用在hash和random load balancing中
如果在upstream中只有一台server,则该参数失效
3. down
用于标记服务节点不可用
upstream tomcats {
server 192.168.1.173:8080 down;
# server 192.168.1.190:8080;
server 192.168.1.174:8080 weight=1;
server 192.168.1.175:8080 weight=1;
}
4.backup
表示当前服务器节点是备用机,只有在其他服务器都宕机后,自己才会加入到集群当中,被用户访问到:
upstream tomcats {
server 192.168.1.173:8080 backup;
# server 192.168.1.190:8080;
server 192.168.1.174:8080 weight=1;
server 192.168.1.175:8080 weight=1;
}
注意:该参数不能使用在hash和random load balancing中
5.max_fails
和fail_timeout
max_fails
表示失败几次,则标记server已宕机,剔除上游服务
fail_timeout
表示失败的重试时间
upstream tomcats {
server 192.168.1.173:8080 max_fails=2 fail_timeout=15s;
# server 192.168.1.190:8080;
server 192.168.1.174:8080 weight=1;
server 192.168.1.175:8080 weight=1;
}
则代表在15秒内请求某一server失败达到2次后,则认为该server已经挂了或者宕机了,随后再过15秒,这15秒内不会有新的请求到达刚刚挂掉的节点上,而是会请求到正常运作的server,15秒后会再有新请求尝试连接挂掉的server,如果还是失败,重复上一过程,直到恢复。
6. keepalive
提交吞吐量
keepalive
: 设置长连接处理的数量
proxy_http_version
:设置长连接http版本为1.1
proxy_set_header
:清除connection header 信息
upstream tomcats {
server 47.94.93.123:8080: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 "";
}
}