nginx的upstream目前支持的5种方式的分配。
1.轮询
每个请求按时间顺序逐一分配到不同的后端服务,如果后端某台服务器死机,自动剔除故障系统,使用户访问不受影响。
upstream backserver {
server 192.168.0.14;
server 192.168.0.15;
}
2.指定权重
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
upstream backserver {
server 192.168.0.14 weight=10;
server 192.168.0.15 weight=10;
}
3.IP绑定 ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
upstream backserver {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}
4.fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backserver {
server server1;
server server2;
fair;
}
5.url_hash
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效.
upstream backserver {
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}
二、Nginx负载均衡调度状态
1.down:表示当前server不参与负载均衡
2.backup:预留备份的机器,只有当其他机器出现故障或者忙的时候,当前机器才会处理请求,所以这台机器访问的压力最低
3.max_fails:允许请求失败的次数,默认为1,当超过最大次数时,返回proxy_next_upstream模块定义的错误、
4.max_timeOut:请求失败超时时间,在经历了max_fails次失败后,暂停服务的时间。max_fails和fail_timeout可以一起使用
Nginx返回状态码说明:404页面不存在,403权限不足拒绝提供服务,500服务器内部错误,502连接超时,503 客户端到服务器,但是服务器没有响应,301和302基本属于一种情况,rewrite地址重写,falg标记的原因。
Nginx配置说明:limit-rare imit_rate 此配置是对客户端请求限制每秒传输的字节数。可以使用多种单位,默认参数为0,表示不限速 限速
limit-rate-after:limit_rate_after 此配置表示Nginx向客户端发送的响应长度超过limit_rate_after后才开始限速 比如百度云体验会员。
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
server {
listen 443;
server_name www.xxx.com; # 项目域名
ssl on;
ssl_certificate server.crt; #(证书公钥)
ssl_certificate_key server.key; #(证书私钥)
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://192.168.1.11:8086; # tomcat服务器地址
}
}