nginx具体配置

  • nginx配置
  1. 编辑在 ${nginx}/conf/nginx.conf 配置文件
  2. 在http节点下增加include vhost/*.conf; (把其他的配置include进来)
  3. 目的是为了要增加Tomcat集群的负载均衡配置
  4. 并且把域名的配置文件分开,方便后期管理
  • 具体过程
  1. 在 ${nginx}/conf目录下创建文件夹vhost
  2. 在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负载均衡配置、常用策略、场景及特点

  • 轮询(默认)

优点:实现简单

缺点: 不考虑每台服务器的处理能力

upstream www.happymmall.com{
        server  www.happymmall.com:8080;
        server  www.happymmall.com:9080;
}
  • 权重 (电脑配置不一致)
upstream www.happymmall.com{
        server  www.happymmall.com:8080 weight=15;
        server  www.happymmall.com:9080 weight=10;
}
  • IP hash (前面介绍过,根据 ip 算hash)

优缺点: 前面讲过

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机器)
}

backup: 备用机器