nginx具体配置
- nginx配置
- 编辑在 ${nginx}/conf/nginx.conf 配置文件
- 在http节点下增加include vhost/*.conf; (把其他的配置include进来)
- 目的是为了要增加Tomcat集群的负载均衡配置
- 并且把域名的配置文件分开,方便后期管理
- 具体过程
- 在 ${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负载均衡配置、常用策略、场景及特点
- 轮询(默认)
优点:实现简单
缺点: 不考虑每台服务器的处理能力
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: 备用机器