网站首页 文章专栏 nginx均衡负载

nginx均衡负载

编辑时间:2019-10-10 14:44:45 作者:苹果 浏览量:547







Nginx提供的负载均衡策略有2种:内置策略和扩展策略。内置策略为热备,轮询,加权轮询,ip_hash。扩展策略,非常多,根据实际需求选择,一般内置的够用


    1>.热备
    如果你有2台服务器,当一台服务器发生事故时,才启用第二台服务器给提供服务。服务器处理请求的顺序:AAAAAA突然A挂啦,BBBBBBBBBBBBBB.....

        upstream mysvr {        
            server 127.0.0.1:6379;
              server 192.168.1.1:6379 backup;  #热备
            }


    2>.轮询
    nginx默认就是轮询其权重都默认为1,服务器处理请求的顺序:ABABABABAB....

        upstream mysvr {        
            server 127.0.0.1:6379;
              server 192.168.1.1:6379;
            }



    3>.加权轮询  轮询的扩展
    跟据配置的权重的大小而分发给不同服务器不同数量的请求。如果不设置,则默认为1。下面服务器的请求顺序为:ABBABBABBABBABB....

        upstream mysvr {        
            server 127.0.0.1:6379 weight=1;
              server 192.168.1.1:6379 weight=2;;
            }



    4.>ip_hash
    nginx会让相同的客户端ip请求相同的服务器。

        upstream mysvr {        
              server 127.0.0.1:6379;
              server 192.168.1.1:6379;
              ip_hash;
            }



        

    推荐常用:

        upstream mysvr {        
              server 127.0.0.1:7878 weight=2 max_fails=2 fail_timeout=2;
              server 192.168.10.121:3333 weight=1 max_fails=2 fail_timeout=1;
            }

        

max_fails,允许请求失败的次数,默认为1。当超过最大次数时,返回proxy_next_upstream 模块定义的错误。

fail_timeout,在经历了max_fails次失败后,暂停服务的时间。max_fails可以和fail_timeout一起使用。




    均衡负载一般在入口机配合配合反向代理使用

    eg:

    upstream     www.hebinghua.com {
           server 192.168.1.2:80 weight=2 max_fails=1 fail_timeout=5s;
           server 192.168.1.3:80 weight=1 max_fails=1 fail_timeout=5s;
           #每3秒检查一次,连续2次成功判断正常,连续5次失败判断宕机,超时时间1秒,检查方式为http
           check interval=3000 rise=2 fall=5 timeout=1000 type=http;
           #检查时发送的http数据   加入长链接
           check_http_send "HEAD / HTTP/1.1\r\nConnection: keep-alive\r\nHost: www.hebinghua.com\r\n\r\n";
           #判断后端真实服务器是否健康的指标的状态码
           check_http_expect_alive http_2xx http_3xx;
           keepalive 50;
    }
    
    server {
       listen       80;
       server_name  www.hebinghua.com;
       access_log   /data/logs/nginx/www.hebinghua.com.access.log  json;
       error_log    /data/logs/nginx/www.hebinghua.com.error.log  warn;
    
       location ~* \.(zip|rar|7z|tar|gz|bz|cab|sh|gzip|tgz|exe|aspx|jsp)$ {
           return 404;
       }
    
        #代理转发
       location / {
          proxy_next_upstream error timeout http_503 http_502 http_504 invalid_header;
          proxy_pass http://www.hebinghua.com;
          proxy_set_header Host  $host;
          proxy_set_header REMOTE-HOST $remote_addr;
          client_max_body_size 20m;
          client_body_buffer_size 128k;
          proxy_ignore_client_abort on;
          proxy_connect_timeout 60s;
          proxy_send_timeout 60s;
          proxy_read_timeout 60s;
          proxy_buffer_size 64k;
          proxy_buffers 4 32k;
          proxy_busy_buffers_size 64k;
          proxy_temp_file_write_size 64k;
          proxy_intercept_errors off;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       }
    
       error_page   500 502 503 504  /50x.html;
       location = /50x.html {
           root   html;
       }
    }




    出自:何冰华个人网站

    地址:http://www.hebinghua.com/

    转载请注明出处


来说两句吧
最新评论