开篇
Nginx 对于攻城狮的我们并不陌生,无论是php的同学还是java的同学,nginx对于我们来说都是必备技能。有了nginx,我们的应用就插上了集群化,性能可伸缩的翅膀。今天就来实战调一次nginx 负载均衡两个tomcat供大家参考用。
当然,用spring boot的或者用spring cloud的同学,也是一样的道理。nginx用的最多的就是网关 gateway前面的负载均衡使用。
另外说明一下,我也搜罗了很多nginx学习资料,而且是开源网站上的,有需要链接的同学到文章末尾有开源学习资料地址获取方法。本文一如既往实战调试,作为攻城狮学习参考文章,可以收藏、转发、关注一下。
Nginx负载均衡模式简介
1、轮询:nginx默认就是轮询,就是两个tomcat来回切,一会儿后面有调试。
2、加权轮询:跟据配置的权重的大小而分发给不同服务器不同数量的请求。如果不设置,则默认为1。就是谁的权重大,谁的概率就高一些。一会儿后面有调试。
3、热备:例如你有2个tomcat,当一个tomcat挂了,才启用第二个tomcat给提供服务,一会儿后面有调试。
4、ip_hash:nginx会让相同的客户端ip请求相同的服务器。
实战,原理不懂?没关系,看实战调试
环境准备:3台机器,ip地址分别为192.168.1.102-nginx 机器,192.168.1.106-tomcat1机器192.168.1.108-tomcat2机器。安装nginx和tomcat的步骤就略过了,不会就自己搜吧。为了方便,我把106的tomcat和108的tomcat默认的index.jsp 加上了106 和108字样,如图所示。
1、nginx轮询模式,如图修改192.168.1.102上的nginx.conf配置,如图标红色部分
访问http://192.168.1.102,然后刷新你会看到轮询开始了!!!注意,此处是nginx默认模式,有的同学会遇到负载均衡不生效的情况,不是不生效,是因为你不是新标签打开。很多浏览器默认情况下刷新,不会请求头部header不会改变,所以你刷新不起效果。必须新标签打开。这种情况其实是符合多用户使用的。不是你一个浏览器一个标签页刷的!是要新标签页才能模仿多用户请求。访问机器顺序是AB AB AB.....
2、nginx配置加权轮询,默认的轮询方式权重都是1,加权就是哪台机器质量好就可以多接收些请求。例如把106机器的权重改成2,则刷新的时106出现两次,108出现一次。也就是出现访问机器的顺序是AAB AAB AAB的顺序持续下去。
3、nginx 热备,关键字是 backup,这里我们把106停了,108是热备就启用了。
4、ip_hash 这个比较简单,只贴配置了,想看效果,自己修改自己的Ip地址。
结语
至此nginx负载均衡的几种常见的模式就调试完了,nginx作为web服务器中最常见的负载均衡软件,在各大互联网公司都经常使用,所以我也搜罗了很多nginx学习资料。当然我只搜罗开源的。最后觉得有用,收藏、关注转发吧,需要nginx开源学习资料链接的同学私信"nginx"。