zoukankan      html  css  js  c++  java
  • Mall电商项目总结(二)——nginx负载均衡配置和策略

     1. nginx配置文件

     用户在浏览器上输入,http://www.xwld.site/ 实际上在访问服务80端口nginx 监听80端口用户的请求转发到80809080端口 

    1.    upstream www.xwld.site{  
    2.            server www.xwld.site:8080;  
    3.            server www.xwld.site:9080;  
    4.    }  
    5.    server {  
    6.    listen 80;  
    7.    autoindex on;  
    8.    server_name www.xwld.site xwld.site;  
    9.    access_log /usr/local/nginx/logs/access.log combined;  
    10.    index index.html index.htm index.jsp index.php;  
    11.    if ( $query_string ~* ".*[;'<>].*" ){  
    12.            return 404;  
    13.            }  
    14.    location = / {  
    15.            root /product/front/mmall_fe/dist/view;  
    16.            index index.html;  
    17.    }  
    18.      
    19.    location ~ .*.html$ {  
    20.            root /product/front/mmall_fe/dist/view;  
    21.            index index.html;  
    22.    }  
    23.    location / {  
    24.            proxy_pass http://www.xwld.site/;  
    25.            }  
    26.    location ~ .*.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {  
    27.            proxy_pass http://www.xwld.site;  
    28.            expires 30d;  
    29.            }  
    30.    location ~ .*.(js|css)?$ {  
    31.            proxy_pass http://www.xwld.site;  
    32.            expires 7d;  
    33.            }  
    34.    }  

     nginx 配置负载均衡的时候,可以修改上面的配置文件,新增多个服务器ip,也可以指定客户端请求到服务器的对应策略 

    2. Nginx负载均衡配置策略

    常见的策略轮询、权重、ip_hash、fair 

    2.1 轮询

    默认就是轮询方式,轮询的方式,每个请求会按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

    优点

    实现简单,不要配置

    缺点

    不考虑每台服务器处理能力。

    示例 

    upstream www.xwld.site{  
    server www.xwld.site:8080;  
    server www.xwld.site:9080;  
    }  

      

    2.2 权重(weight

    指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况,在实际生产环境中用的最多。

    优点

    考虑台服务器处理能力的不同

    如果,我们有两条linux服务器,有一,配置比较高,那么这台高配置的服务器,应要负担更多的请求。

    示例

    upstream www.xwld.site{  
    server www.xwld.site:8080  weight=15;  
    server www.xwld.site:9080  weight=10;  
    }  

     上面配置表示,访问8080端口的服务器的概率是访问9080端口1.5

    2.3 ip_hash

    每个请求按访问iphash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

    缺点是,ip_hash不一定平均,可能会造成某一服务器的压力过大。 

    示例

    upstream www.xwld.site{  
    ip_hash;
    server www.xwld.site:8080;  
    server www.xwld.site:9080;  
    }  

    2.4 least_conn(最少连接

    least_conn这种负载均衡策略,能把请求转发给连接数较少的后端服务器,适合请求处理时间长短不一造成服务器过载的情况。

    有时候会出现这种情况,有些接口请求占用的时间很长,会导致其所在的后端服务负载过高。这种情况下,least_conn这种方式就可以达到更好的负载均衡效果。 

    示例

    upstream www.xwld.site{  
    least_conn;
    server www.xwld.site:8080;  
    server www.xwld.site:9080;  
    }  

    2.5 fair(公平)

    按后端服务器的响应时间来分配请求,响应时间短的优先分配。

    fair属于第三方的负载均衡策略的实现,要使用这种策略,需要安装第三方插件。 

    示例

    upstream www.xwld.site{  
    server www.xwld.site:8080;  
    server www.xwld.site:9080;  
    fair;  
    }  

    2.6 url_hash

    使用url_hash,可以使得同一个url(也就是同一个资源请求)会到达同一台服务器,一旦缓存住了资源,再此收到请求,就可以从缓存中读取

    示例

    upstream www.xwld.site{  
    server www.xwld.site:8080;  
    server www.xwld.site:9080;  
    hash $request_uri;  
    }  
  • 相关阅读:
    Realtime crowdsourcing
    maven 常用插件汇总
    fctix
    sencha extjs4 command tools sdk
    首次吃了一颗带奶糖味的消炎药,不知道管用不
    spring mvc3 example
    ubuntu ati driver DO NOT INSTALL recommand driver
    yet another js editor on windows support extjs
    how to use springsource tools suite maven3 on command
    ocr service
  • 原文地址:https://www.cnblogs.com/weiqinshian/p/10450830.html
Copyright © 2011-2022 走看看