Nginx -- 07 -- 搭建Nginx + Tomcat负载均衡集群

当我们的应用程序部署到服务器上后,在接收大量请求时,单一的服务器终究是无法满足需要处理的负荷量的,另外一旦该服务器发生故障,则该应用程序就无法访问了,因此这个时候就需要用到集群了


既然提到了集群,就不得不再提下另外两个概念:负载均衡和分布式,我们先来了解下这三个概念

  • 集群

    • 将多台服务器连接起来共同工作,在某种程度上,可以被看作是一台服务器,集群中单台服务器通常称为节点
  • 负载均衡

    • 将一台服务器上要处理的请求,根据负载均衡算法分配到其他服务器上去处理,从而减少该台服务器的负载,防止因为负载过大而造成响应超时或宕机等意外情况的发生
  • 分布式

    • 将不同的业务模块部署在不同的服务器上

    • 和集群的区别在于

      • 集群是将同一个业务部署在多台服务器上

      • 分布式是将不同的业务部署在不同的服务器上


这里我们来搭建一个简单的Tomcat集群并实现负载均衡

一、部署 Nginx 和 Tomcat

首先我们现在服务器上搭建一个 Nginx 和两个 Tomcat,修改两个 Tomcat 的端口 (Tomcat 配置文件中有三个端口号,最好都一起改了),为了方便起见,我将它们命令为 Tomcat001 和 Tomcat002


二、修改 Tomcat 配置文件及默认页

为了一会更好地展示,我们来修改下 Tomcat 的默认页面,其位于 /usr/local/tomcat/apache-tomcat-9.0.17/webapps/ROOT 目录下 (根据自己的安装路径来查找)

Tomcat001

<Server port="8000" shutdown="SHUTDOWN">

<Connector port="8001" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

<Connector port="8002" protocol="AJP/1.3" redirectPort="8443" />
<div id="asf-box">
    <h1>我是001号Tomcat</h1>
</div>

Tomcat002

<Server port="8003" shutdown="SHUTDOWN">

<Connector port="8004" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

<Connector port="8005" protocol="AJP/1.3" redirectPort="8443" />
<div id="asf-box">
    <h1>我是002号Tomcat</h1>
</div>

三、修改 Nginx 配置文件

#其余配置省略
http {
    #tomcatcluster.com:服务器集群的名字
    upstream tomcatcluster.com {
        #127.0.0.1:8001:Tomcat001访问地址
        #weight:权重大小,权重越大,分配的概率越大
        server  127.0.0.1:8001 weight=1;
        #127.0.0.1:8004:Tomcat002访问地址
        server  127.0.0.1:8004 weight=2;
    }

    server {
        listen       8888;
        server_name  127.0.0.1;

        location / {
             #proxy_pass:代理地址,需要与upstream配置的服务器集群名字相同
             proxy_pass  http://tomcatcluster.com/;
        }
    }

}


四、测试

此时我们先启动 Nginx 和 Tomcat,然后在浏览器地址栏中输入 http://xxxxxxxxx:8888 查看运行状态

第一次刷新

在这里插入图片描述

第二次刷新

在这里插入图片描述

第三次刷新

在这里插入图片描述

我们不断地刷新,会发现访问 Tomcat002 的概率是访问 Tomcat001 的 2 倍,这是因为我们之前设置的权重起了作用


四、总结

到此,我们就已经简单地搭建了一个 Nginx + Tomcat 的负载均衡集群,是不是很容易!不过这只是最简单,想要深入了解的话还是要多多学习


五、参考资料

Nginx+Tomcat搭建高性能负载均衡集群

posted @ 2019-04-17 20:33  GeneXu  阅读(74)  评论(0)    收藏  举报