Nginx 负载均衡常见策略
nginx常见的upstream配置策略有以下几种:
1、轮询(默认)
按时间顺序从上到下分配服务器
upstream www.mydomain.cn{
server 192.168.10.1:80;
server 192.168.10.2:80;
}
注意:端口号可以在 nginx.conf (或者 default.conf) 配置文件中修改,www.mydomain.cn 为对外提供的域名
2、权重
服务器性能存在较大差距时,可以分配给性能好的服务器较高权重
upstream www.mydomain.cn {
server 192.168.10.1:80 weight=1;
server 192.168.10.2:80 weight=2;
}
说明:以上分配方式请求发送到两台服务器的比例为1:2
3、IP绑定( ip_hash)
每个访客根据ip_hash固定访问一个后端服务器,可以解决session的问题。
upstream www.mydomain.cn {
ip_hash;
server 192.168.10.1:80;
server 192.168.10.2:80;
}
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream www.mydomain.cn {
server 192.168.10.1:80;
server 192.168.10.2:80;
fair;
}
5、url_hash(第三方)
按访问url的hash结果来分配请求,适合服务器有缓存的情况
upstream www.mydomain.cn{
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}
6、最少链接
适合请求处理时间长短不一造成服务器过载的情况
upstream www.mydomain.cn{
least_conn;
server CashServers1.com;
server CashServers2.com;
server CashServers3.com;
}
其它
正向代理:代理服务器倾向于客户端,为客户端提供缓存。
反向代理:代理服务器倾向于服务器,接受服务器的分配,服务器对于客户端是透明的。
实现负载均衡时(集群模式):多台服务器的内容必须完全一致,否则会出现页面混乱的情况,原因:客户端访问网站时,会发送多个请求,请求按照轮询或权重方式分配给目标服务器,如果内容不一致,加载结果出现混乱