负载均衡
负载均衡演示案例预备条件
-
准备两个tomcat的服务器。
这里我们在同一台Linux服务器上运行两个tomcat分别为8080和8081端口。(关于tomcat的准备这里不在过多介绍,可以自行网上搜索)。 -
在8080端口的tomcat的webapps路径下。
再创建一个lbt文件夹,也创建一个a.html的文件。文件内容如下。
<html>
<h1>load banlance 8080</h1>
</html>
- 同样我们在8080端口的tomcat的webapps路径下。
再创建一个lbt文件夹,也创建一个a.html的文件。文件内容如下。
<html>
<h1>load banlance 8081</h1>
</html>
- 分别启动两台tomcat服务器。
分别访问一下地址,我们会看到一下结果。
-
http://192.168.8.108:8080/lbt/a.html
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FUYl5s0x-1621215154586)(imgs/nginx-re-proxy02.PNG)] -
http://192.168.8.108:8081/lbt/a.html
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bqlaiJdr-1621215154591)(imgs/nginx-re-proxy04.PNG)]
实战——配置负载均衡
- 配置负载均衡 在http属性中新增一个upstream配置。新增一个server虚拟主机配置。
http {
upstream lbserver{
server 192.168.8.108:8080;
server 192.168.8.108:8081;
}
server{
listen 9001;
server_name 192.168.8.108;
location / {
proxy_pass http://lbserver;
}
}
}
属性配置说明:
- upstream 负载均衡配置器。
- upstream.server 负载均衡指定的需要在负载均衡时进行分配的ip和端口地址,本机或非本机id都可以。
- 虚拟主机的server配置与反向代理的类似,只是在proxy_pass中配置成upstream的名称,如案例中所示 http://lbserver 。
- 测试效果
现在直接访问http://192.168.8.108:9001/lbt/a.html 地址。可以看到8080和8081被轮询访问到。
说明配置的负载均衡是起效的,且默认是轮询的负载均衡效果。
负载均衡策略
weight
指定每个服务的权重比例,weight和访问比率成正比。
upstream lbserver{
server 192.168.8.108:8080 weight=1;
server 192.168.8.108:8081 weight=2;
}
ip_hash
每个请求都根据访问ip的hash结果分配,经过这样的处理,每个访客固定访问一个后端服务。
upstream lbserver{
ip_hash;
server 192.168.8.108:8080;
server 192.168.8.108:8081;
}
least_conn
将请求分配到连接数最少的服务上。
upstream lbserver{
least_conn;
server 192.168.8.108:8080;
server 192.168.8.108:8081;
}
小结
- upstream负载均衡配置器。
- 负载均衡策略:weight、ip_hash、least_conn。
本文详细介绍如何在Nginx中配置负载均衡,并通过实例演示了轮询、权重分配、基于IP哈希及最少连接数等策略的具体实现。
1856

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



