首页 > 代码库 > 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 负载均衡