Nginx的负载均衡

Nginx的负载均衡

简单了解

  • 负载均衡,相信大家都知道是什么意思,在Nginx中均衡的意思是指在大批量的访问前提下的一种基本均衡,并非绝对的均衡;

  • 对于Web工程的负载均衡,就是将相同的Web应用部署到不同的Web服务器,

  • 当多个请求到来时,由负载均衡服务器负责将请求按照实现设定好的规则向Web服务器进行分发,从而增加系统整体吞吐量

负载均衡Demo

  • 这个Demo需要使用到三台服务器,一个Nginx,两台Tomcat,在Nginx上设置对这两台Tomcat主机的负载均衡

  • Nginx:192.168.159.169

  • Tomcat:192.168.159.158;192.168.159.179

环境搭建:因为我的三台Linux都是没装JDK环境的,所以在装Tomcat之前得把JDK环境给装上,详细不多说,这个不是我们的重点,

然后就是Tomcat环境的搭建,这个也不是我们的重点,然后把我们的web工程打包放到Tom的webapp目录下,启动Tomcat,这个也不是重点。

为了待会儿负载均衡看到效果,我们再每个工程中显示当前机器的IP

  

环境搭建完成访问web工程如下所示:

  

  

修改我们的Nginx的配置文件如下:

  

  • 首先我们创建一个upstream 取个id 随便取什么可以,我取的是tomcat.nginx.com

    1. :server:参与负载均衡的机器的ip和端口

    2. :weight:中文为权重的意思,也就是比列,上面两个服务的负载均衡比列为1:1

  • 然后在我们的拦截规则中通过proxy_pass 指定上方这个id即可

  • 这样我们访问我们的nginx,其后带上访问的项目的名称,我没改所以为项目打包的名字

  • 可以看到我们的访问路径是Nginx服务器且没有变,但下面显示当前项目的ip却变了,说明访问了不同的项目,且每刷新一次就会换一个项目,实现了1:1分摊负载

  • Nginx内部对拦截的请求进行了转发,转发到内部参与负载均衡的机器的列表中
原文地址:https://www.cnblogs.com/msi-chen/p/11132738.html