windows/linux 同时运行两个以上tomcat

1.情景展示

  在服务器上部署javaWeb项目,通常使用tomcat或者jdk来确保项目的正常运行,常常出现的实际应用场景是:一台电脑上往往会运行多个项目,如果把项目都部署到同一tomcat上,虽然可行,但是却不不建议这样做,一方面是日志记录,控制台的监控凌乱,另一方面是tomcat的运行压力,也不利于后期的维护更新。

  所以,我们能想到的办法就是:为了确保每个项目的运行相互独立,通常会选择一个项目占用一个tomcat(一个tomcat只部署一个项目),同时运行多个tomcat。

  如何实现?

2.具体分析

  运行tomcat的前提:

  第一,tomcat的运行需要依赖的是JRE,没有java运行环境就无法使用tomcat。

  第二,tomcat的版本和JRE版本有对应关系,即:tomcat的运行对JRE版本有要求。

  tomcat官网(http://tomcat.apache.org/whichversion.html)给出了tomcat和JDK版本的匹配情况

  另外,Tomcat的RUNNING.txt也有当前版本所需JDK说明:

  tomcat和jdk都有32位和64位。

3.解决方案

  第一步:确定JDK/JRE(可能需要);

  首先,说明一点:多个tomcat可以共用同一个jdk。

  但这里通常可能会存在这样的情况:

  之前的老项目使用的是jdk1.7,此时,我们配置的JAVA_HOME自然是jdk1.7,但是,将要部署的新项目使用的是jdk1.8,这个时候,如何在确保原有jdk的基础上,添加新的jdk,并确保新旧项目同时独立运行,互不干扰?

  这个时候,就需要我们给tomcat指定jdk的访问路径啦,具体操作见下文。

  tomcat 指定(自定义)JDK路径的两种方式

  第二步:修改tomcat端口号(肯定需要);

  第一步也许你用不到,但是,这一步是确保多个tomcat能够同时运行的基础,具体操作见下文。

  TOMCAT修改端口号

  第三步:确保tomcat没有跑串(可能需要)。 

  在实际部署项目时,我通常的做法是:一个大的版本tomcat只运行一个,即:tomcat6有且只有一个,tomcat7有且只有一个,tomcat8有且只有一个。。。

  这样做的好处在于:在确保端口号修改正确的前提下,各个版本的tomcat不会跑串(比方说:tomcat6现在处于运行状态,此时启动tomcat7,运行的不会是tomcat6的内容和项目);

  但往往存在的是这样的场景:

  现在服务器上已经有一个tomcat了,无法或者懒得从tomcat官网下载,好,我直接把这个tomcat复制一份,重命名后供另一个项目使用。

  先来说一个如何正确复制一个tomcat?

  复制整个tomcat目录后,对其进行重命名;

  删掉或清空logs目录;

  删掉或清空work目录;

  删除webapps下的项目,保留原有的项目:

  剩下的步骤就是回归到第一步和第二步啦。

  这个时候,我们启动当前tomcat的startup.bat会发现:启动的还是原来的tomcat,过一会儿就会闪退,当我们运行shutdown.bat时,会发现关闭的也是原来的tomcat,这就是所谓的tomcat跑串的情况发生了,如何纠正?

  需要修改startup.bat和shutdown.bat文件。

  在bin目录下找到startup.bat,右键,编辑打开该文件,在setlocat下面配置tomcat的根路径:

set "CATALINA_HOME=D:\apache-tomcat-10.0.2-x64"   

  按照上述步骤修改shutdown.bat即可。

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

posted @ 2021-05-25 16:09  Marydon  阅读(348)  评论(0编辑  收藏  举报