nginx(一)分流

前言

  • nginx配置

    1.编辑在 ${nginx}/conf/nginx.conf 配置文件 2.在http节点下增加include vhost/*.conf; (把其他的配置include进来) 3.目的是为了要增加Tomcat集群的负载均衡配置 4.并且把域名的配置文件分开,方便后期管理

  • 具体过程

在 ${nginx}/conf目录下创建文件夹vhost 在vhost文件夹下新增 www.imooc.com.conf 配置文件

upstream www.imooc.com{   //分流,根据不同的策略
        server  www.imooc.com:8080 weight=1;
        server  www.imooc.com:9080 weight=1;
        #server 192.168.1.1:8080 //也可以用每一个tomcat的IP来配置
        #server 192.168.1.2:9080 
}
server{
  listen 80; //监听在80端口
  autoindex on;
  server_name imooc.com www.imooc.com;  // 表示监听后转到哪里去
  access_log /usr/local/nginx.logs.access.log combined;
  index index.html index.html index.jsp index.php

  location /{
        proxy_pass http://www.imooc.com;  // 表示匹配的路径,指向到域名,然后此域名到上面进行分流,负载均衡
        add_header Access-Control-Allow-Origin *;
  }
}

参数说明:

listen:表示当前的代理服务器监听的端口,默认的是监听80端口。注意,如果我们配置了多个server,这个listen要配置不一样,不然就不能确定转到哪里去了。

server_name:表示监听到之后需要转到哪里去,这时我们直接转到本地,这时是直接到nginx文件夹内。

location:表示匹配的路径,这时配置了/表示所有请求都被匹配到这里

root:里面配置了root这时表示当匹配这个请求的路径时,将会在这个文件夹内寻找相应的文件,这里对我们之后的静态文件伺服很有用。

index:当没有指定主页时,默认会选择这个指定的文件,它可以有多个,并按顺序来加载,如果第一个不存在,则找第二个,依此类推。

nginx负载均衡配置、常用策略、场景及特点

一、轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 优点:实现简单 缺点: 不考虑每台服务器的处理能力

upstream www.happymmall.com{
        server  www.happymmall.com:8080;
        server  www.happymmall.com:9080;
}

二、weight 权重

(电脑配置不一致) 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

upstream www.happymmall.com{
        server  www.happymmall.com:8080 weight=15;
        server  www.happymmall.com:9080 weight=10;
}

三、IP hash

(根据 ip 算hash) 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 但比如手机用户WiFi切换手机网络 则使ip变化

upstream www.happymmall.com{
        ip_hash;
        server  www.happymmall.com:8080;
        server  www.happymmall.com:9080;
}

四、url hash

(第三方,需要装一个插件) 按后端服务器的响应时间来分配请求,响应时间短的优先分配。 优点:能实现同一个服务访问同一个服务器 缺点:根据url hash分配请求会不均匀,请求频繁的url会请求到同一个服务器上

五、fair

(第三方) 按后端服务器的响应时间来分配,响应时间短的优先分配

upstream www.happymmall.com{
        server  www.happymmall.com:8080;
        server  www.happymmall.com:9080;
        fair;
}

负载均衡参数讲解扩展知识点

upstream www.happymmall.com{
        ip_hash;
        server  www.happymmall.com:9090 down; (down表示当前的server暂时不参与负载)
        server  www.happymmall.com:8080 weight=2;(weight默认为1,weight越大,负载的权重就越大)
        server  www.happymmall.com:6060;
        server  www.happymmall.com:7070 backup;(其它所有的非backup机器down或者忙的时候,请求backup机器)
}

麦志建博客
请先登录后发表评论
  • latest comments
  • 总共0条评论