nginx负载均衡


负载均衡的实现
宿主机里home目录下新建tomcat1和tomcat2目录,复制容器里conf,webapps到宿主机
docker cp b3c0449a618e:/usr/local/tomcat/conf /home/tomcat1/
docker cp b3c0449a618e:/usr/local/tomcat/webapps /home/tomcat1/
docker cp b3c0449a618e:/usr/local/tomcat/conf /home/tomcat2/
docker cp b3c0449a618e:/usr/local/tomcat/webapps /home/tomcat2/
修改共享目录tomcat1、tomcat2中的文件(server.xml、index.jsp),用于查看负载均衡的效果;
docker run -d --name tomcat1 -p 8080:8080 -v /home/tomcat1/conf/:/usr/local/tomcat/conf/ -v /home/tomcat1/webapps/:/usr/local/tomcat/webapps/ aeea3708743f
docker run -d --name tomcat2 -p 9090:9090 -v /home/tomcat2/conf/:/usr/local/tomcat/conf/ -v /home/tomcat2/webapps/:/usr/local/tomcat/webapps/ aeea3708743f

为了方便观看改变页面效果
tomcat1改变页面效果

tomcat2改变页面效果

tomcat2改变端口,测试时需要重启



修改nginx.conf指定具体代理的目标服务器
upstream www.feidao.com{
server 172.17.0.3:8080 weight=1;
server 172.17.0.4:9090 weight=2;
}

default.conf server.server_name(用户访问URL),server.location指定跳转到目标服务器
location / {
#root /usr/share/nginx/html;
#proxy_pass http://172.17.0.3:8080;
proxy_pass http://www.feidao.com;
index index.html index.htm;
}

记住要重启nginx
测试结果:访问 http://www.feidao.com/ ,页面会出现8080、9090不同的输出;并且频率会与weight正相关;
负载均衡策略
每个请求轮流分配到不同的后端服务器,如果后端服务器挂掉,则自动被剔除;
假如tomcat1挂掉,也不会影响系统使用
只会实现tomcat2的
参考配置:
upstream www.feidao.com{
server 172.17.0.3:8080 ;
server 172.17.0.4:9090 ;
}
weight权重
根据weight权重,请求会根据权重比例分发给不同后端服务器,weight权重越高,分配的比例越大;
实际分配,根据服务器硬件配置高低,来具体分配weight权重,硬件配置高的,weight就配置高点;
参考配置:
upstream www.feidao.com{
server 172.17.0.3:8080 weight=1;
server 172.17.0.4:9090 weight=2;
}
ip_hash策略
ip_hash策略是根据用户客户端的IP的hash值来分配具体服务器,这样每个访问客户端都会固定访问某一个服务器,这样可以解决session丢失问题,很多网站都采用这种策略来搞负载均衡,主要考虑到session问题;
参考配置:
upstream www.feidao.com{
ip_hash;
server 172.17.0.3:8080 ;
server 172.17.0.4:9090 ;
}
least_conn最少连接
web请求会被分发到连接数最少的服务器上;
参考配置:
upstream www.feidao.com{
least_conn;
server 172.17.0.3:8080 ;
server 172.17.0.4:9090 ;
}
负载均衡备份与宕机
备份 backup配置;
其他非backup机器挂掉后,才会请求backup机器;
参考配置:
upstream www.feidao.com{
server 172.17.0.3:8080 ;
server 172.17.0.4:9090 backup ;
}
宕机 down配置;
配置down的服务器不参与负载均衡;这样down所标记的服务器可以安心的升级了;
参考配置:
upstream www.feidao.com{
server 172.17.0.3:8080 ;
server 172.17.0.4:9090 down ;
}
这两个配置很多时候用于运维,维护某个机器的时候用;
Nginx负载均衡实战
本文详细介绍如何通过Nginx实现负载均衡,包括配置Tomcat容器、设置代理目标服务器、应用不同负载均衡策略如轮询、权重分配、ip_hash、最少连接及处理服务器故障与备份。通过实例展示负载均衡效果。
1424

被折叠的 条评论
为什么被折叠?



