在Linux中使用Nginx与两个Tomcat实现负载均衡

配置两个Tomcat

下载安装

  1. 去官网下载对应的tomcat压缩文件(tar.gz),这里我选用的版本是8.5.69。
  2. 挑个位置新建自己的目录:cd /usr/local/etc ; mkdir jxlTest ; mkdir tomcat8001 (文件夹的名字自己定)
  3. 进入tomcat8001文件夹下,因为我用的是Xshell远程连接服务器,所以执行rz命令传输文件,选择下载的tomcat压缩包传输到本文件夹中,解压:tar -zxvf apache-tomcat-8.5.69,删除本来的压缩包:rm apache-tomcat-8.5.69.tar.gz
  4. 返回上一层,新建目录:mkdir tomcat8002,拷贝解压内容到新目录中:cp -r ../tomcat8001/apache-tomcat-8.5.69 .
  5. 目录如下图:
    目录结构

配置tomcat环境变量

  1. 接下来需要编辑profile,配置两个tomcat的catalina的base和home环境变量,进入路径下修改文件:vim /etc/profile

  2. 在文件的最后添加以下内容(可以先自行备份profile):

    CATALINA1_BASE=/usr/local/etc/jxlTest/tomcat8001/apache-tomcat-8.5.69
    CATALINA1_HOME=/usr/local/etc/jxlTest/tomcat8001/apache-tomcat-8.5.69
    TOMCAT1_HOME=/usr/local/etc/jxlTest/tomcat8001/apache-tomcat-8.5.69
    export CATALINA1_BASE CATALINA1_HOME TOMCAT1_HOME
    
    CATALINA2_BASE=/usr/local/etc/jxlTest/tomcat8002/apache-tomcat-8.5.69
    CATALINA2_HOME=/usr/local/etc/jxlTest/tomcat8002/apache-tomcat-8.5.69
    TOMCAT2_HOME=/usr/local/etc/jxlTest/tomcat8002/apache-tomcat-8.5.69
    export CATALINA2_BASE CATALINA2_HOME TOMCAT2_HOME
    

    添加完成后截图如下:
    catalina相关设置

  3. 修改完成后,执行source profile,对刚才配置的环境进行重载。

  4. 分别进入到两个tomcat的bin路径下,编辑各自的catalina.sh,配置catalina_home:

  • 8001的catalina.sh前面加上:
    export CATALINA_BASE=$CATALINA1_BASE
    export CATALINA_HOME=$CATALINA1_HOME
    
  • 同理,8002的catalina.sh前面也要加上对应的:
    export CATALINA_BASE=$CATALINA2_BASE
    export CATALINA_HOME=$CATALINA2_HOME
    

配置tomcat的监听端口

  1. 进入tomcat各自的apache-tomcat-8.5.69/conf下,修改配置文件:vim server.xml,主要包括server的shutdown端口,这里默认是8005,故而选择两个与之不同的端口号80168017(可自行选择可用端口号),修改第一个tomcat的shutdown端口如下:
    shutwodn的端口号
  2. tomcat监听端口修改为8001,如下图:
    修改服务器的监听端口
  3. 第二个tomcat的shutdown端口:
    8002的shutdown端口
  4. 第二个tomcat的监听端口8002(截图给忘记了,跟8001的位置一样)

tomcat运行测试

  1. 确认你的8001和8002端口在防火墙上是开放的,因为使用8003作为"nginx服务器",还需要打开8003端口,这里可以使用以下命令进行防火墙端口开放操作,参考这篇博客
  • 查询某个端口是否开放(portNo改为实际的端口号):firewall-cmd --query-port=portNo/tcp
  • 永久开放某个端口(portNo改为实际的端口号):firewall-cmd --add-port=portNo/tcp --permanent
  • 重载修改好的防火墙配置: firewall-cmd --reload
  • 最后再次使用查询命令可以看到端口已经开发(no变为yes)
    查看配置的几个防火墙端口
  1. 修改默认界面index.jsp,这里我随便加了一句话(在if you’re seeing this那块),用来区分8001和8002的tomcat,也可以自己重写html内容。
  2. 到8001和8002各自路径下的apache-tomcat-8.5.69/bin中,执行startup脚本:./startup.sh。tomcat服务成功运行以后(可以通过ps -ef | grep tomcat查看tomcat进程运行情况,运行失败则去log中定位错误),通过浏览器访问http://服务器ip:8001http://服务器ip:8002,显示分别如下:
  • 8001:
    在这里插入图片描述
  • 8002:
    在这里插入图片描述

负载均衡

Nginx配置

  1. 进入nginx的conf目录,一般在/etc/nginx(你的nginx安装目录)/conf,可以先对nginx.conf文件进行备份,然后在原文件中添加如下对应配置,这里设置8001和8002配置的权重为1:2

    upstream tomcatJxlT{
    	server 192.168.1.119:8001 weight=1;
    	server 192.168.1.119:8002 weight=2;
    }
    
    server{
    	listen 8003;
    	location / {
    		proxy_pass http://tomcatJxlT;(这里的名称要与upstream中的名称一致)
    	}
    }
    
  2. 配置完成后如下图:
    在这里插入图片描述

  3. 配置完成,记得nginx -s reload重新加载一下nginx服务。最后的访问结果是:访问8003时,有两次显示8002页面,一次显示8001页面:
    在这里插入图片描述
    访问8003可以显示8002页面

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值