Nginx实例之集群

 Nginx集群原理

  • 虚拟主机:接受和响应用户请求
  • 反向代理:带用户去数据服务器拿数据
  • upstream:告诉Nginx去哪个数据服务器拿数据

 Nginx集群分发算法

  • 轮询:每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除
  • 权重:指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况
upstream weightTest{ 
      server 10.0.0.77 weight=5; 
      server 10.0.0.88 weight=10; 
}
  • ip_hash:每个请求按ip的hash结果分配,每个访客可以固定访问一台后端服务器,可以解决session不一致的问题
upstream hashTest{ 
      ip_hash; 
      server 10.0.0.10:8080; 
      server 10.0.0.11:8080; 
}

 Nginx业务服务器状态

  • down:表示当前server暂时不参与负载
  • weight:默认为1,weight越大,负载的权重就越大
  • max_fails:允许请求失败的次数,默认为1.当超过最大次数时,返回proxy_next_upstream模块定义错误
  • fail_timeout:max_fails次失败后,暂停的时间,默认为10秒
  • backup:其他所有的非backup机器down掉或者忙时,请求backup机器。backup 不能和 ip_hash 关键字一起使用
upstream bakend{ #定义负载均衡设备的Ip及设备状态 
      ip_hash; 
      server 10.0.0.11:9090 down; 
      server 10.0.0.11:8080 weight=2; 
      server 10.0.0.11:6060 max_fails=3 fail_timeout=30s; #最大失败次数为 3,也就是最多进行 3 次尝试,且超时时间为 30秒。max_fails 的默认值为 1,fail_timeout 的默认值是 10s  
}

 实例

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    upstream web{    # 名为web的反向代理群组
        server 192.168.31.42;
        server 192.168.31.43;
    }
    server {
        listen       80;
        server_name  localhost;
        location / {
            proxy_pass http://web;   # 去找反向代理
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

 

  

  

posted @ 2020-03-08 14:43  鄙人取个名字好难  阅读(206)  评论(0编辑  收藏  举报