目录
1. Nginx 负载均衡策略
1.1 轮询(默认)
每个请求轮流分配到不同的后端服务器,如果后端服务器挂掉,则自动被剔除;
示例:
upstream www.zth.com{
server 172.17.0.2:8080 ;
server 172.17.0.3:9090 ;
}
1.2 weight 权重
根据 weight 权重,请求会根据权重比例分发给不同后端服务器,weight 权重越高,分配的比例越大;
示例:
upstream www.zth.com{
server 172.17.0.2:8080 weight=5;
server 172.17.0.3:9090 weight=10;
}
1.3 ip_hash
ip_hash 策略是根据用户客户端的 IP 的 hash 值来分配具体服务器,这样每个访问客户端都会固定访问某一个服务器,这样可以解决 session 丢失问题,很多网站都采用这种策略来搞负载均衡,主要考虑到session问题;
示例:
upstream www.zth.com{
ip_hash;
server 172.17.0.2:8080 ;
server 172.17.0.3:9090 ;
}
1.4 least_conn 最少连接
web请求会被分发到连接数最少的服务器上;
示例:
upstream www.zth.com{
least_conn;
server 172.17.0.2:8080 ;
server 172.17.0.3:9090 ;
}
2. Nginx 负载均衡备份和宕机
21. 备份 backup 配置;
其他非 backup 机器挂掉后,才会请求 backup 机器;
案例:
upstream www.zth.com{
server 172.17.0.2:8080 ;
server 172.17.0.3:9090 backup ;
}
2.2 宕机down配置;
配置 down 的服务器不参与负载均衡;
upstream www.zth.com{
server 172.17.0.2:8080 ;
server 172.17.0.3:9090 down ;
}
3. Nginx 实现负载均衡
第一步:准备两个 tomcat
运行 tomcat 容器,宿主机里 home目录下新建 tomcat1 和 tomcat2 目录,复制容器里 conf 到宿主机
docker cp 容器id:/usr/local/tomcat/conf /home/docker/tomcat1
docker cp 容器id:/usr/local/tomcat/conf /home/docker/tomcat2
在 tomcat1 和 tomcat2 下新建 /webapps/ROOT/ index.html
第二步:修改 tomcat 配置
修改端口分别是 8080 和 9090 以及两个tomcat默认页面内容改成 tomcat1 和 tomcat2
第三步:启动两个 tomcat 测试
docker run -d --name tomcat01 -p 8080:8080 -v /home/docker/tomcat2/conf/:/usr/local/tomcat/conf/ -v /home/docker/tomcat2/webapps/:/usr/local/tomcat/webapps/ f6d5e523a1c9
docker run -d --name tomcat02 -p 9090:9090 -v /home/docker/tomcat2/conf/:/usr/local/tomcat/conf/ -v /home/docker/tomcat2/webapps/:/usr/local/tomcat/webapps/ f6d5e523a1c9
第四步:配置nginx.conf
docker 安装 https://blog.csdn.net/qq_41573234/article/details/106276626
在http模块下配置下加
upstream zth.com {
server 172.17.0.2:8080 weight=5;
server 172.17.0.3:9090 weight=10;
}
第五步:修改 http 下的 server 模块
location / {
proxy_pass http://zth.com;
}
proxy_pass 配置 upstream 对象即可;
第六步:配置 hosts 文件
C:\Windows\System32\drivers\etc
192.168.214.10 www.zth.com
第七步:验证