首页 > 代码库 > nginx 负载均衡
nginx 负载均衡
upstream myServer{
server 192.168.1.100:8080;
server 192.168.1.101:8080;
server 192.168.1.102:8080 down;
server 192.168.1.103:8080 weight=5;
server 192.168.1.104:8080 backup;
server 192.168.1.105:8080 weight=2 max_fails=2 fail_timeout=30s;
}
需要使用的节点添加
proxy_pass http://myServer;
一、nginx支持的分配方式
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
3、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
5、url_hash(第三方)
二、参数说明
down: 表示暂时不参与负载
weight: 表示权重,权值越大越大机率被访问
backup: 其它非backup机器down或者忙的时候请求backup机器
max_fails: 允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
fail_timeout:max_fails 次失败后,暂停的时间。
三、负载均衡session共享
1、不使用session,换作cookie
2、ip_hash,可以实现同一个ip请求定向到同一个后端
upstream myServer{
server 192.168.1.100:8008;
server 192.168.1.103:8080;
ip_hash;
}
备注:nginx服务器是最前端服务器。nginx后端不能有其它负载均衡
3、upstream_hash
可见这篇文档:http://www.sudone.com/nginx/nginx_url_hash.html
nginx 负载均衡