如何在服务器上部署多个tomcat(1)

遇到这样一个问题,我在一个windows server上部署了tomcat8(使用默认的8080端口),发布一个webapp1,但是由于业务需要,客户还要求域名后不接端口号(即使用80端口)部署另一个webapp2,那问题就是如何在一台server上部署多个tomcat呢?查了很多网上的资料,归纳出来有2种办法,本文先介绍第一种。

首先来了解一下tomcat在windows上的环境变量配置,具体细节见http://tomcat.apache.org/tomc…,其中提到:

  • The description below uses the variable name $CATALINA_BASE to refer
    the base directory against which most relative paths are resolved. If
    you have not configured Tomcat for multiple instances by setting a
    CATALINA_BASE directory, then $CATALINA_BASE will be set to the value
    of $CATALINA_HOME, the directory into which you have installed
    Tomcat.

描述了$CATALINA_BASE和$CATALINA_HOME的区别,前者是tomcat的工作目录(如conf、logs、temp、webapps、work和shared文件),后者是安装目录(如bin),上文提到,如何不需要配置多实例,那么$CATALINA_BASE和$CATALINA_HOME设置成一样的。虽然我们要求也是多实例,但是方便起见,先用最容易的方法。当我们只部署一个tomcat时,需要设置如下的环境变量:

  • CATALINA_BASE 为 C:\apache-tomcat-7
  • CATALINA_HOME 为 C:\apache-tomcat-7

如何要部署第二个tomcat,那么可以添加环境变量(名字可以随意定,不需要一模一样)如:

  • CATALINA_BASE_2 为 C:\apache-tomcat-8
  • CATALINA_HOME_2 为 C:\apache-tomcat-8

然后需要修改第二个tomcat的bin目录下的2个文件,编辑startup.bat,把里面所有的CATALINA_HOME都改为CATALINA_HOME_2;编辑catalina.bat,把里面所有的CATALINA_HOME都改为CATALINA_HOME_2,所有的CATALINA_BASE都改为CATALINA_BASE_2;直接用查找+全部替换就可以了。然后修改第二个tomcat的conf目录下的server.xml,做如下修改:

  • <Server port=”8005″ shutdown=”SHUTDOWN”> 的8005改为8006(或其他未使用的端口)
  • <Connector port=”8080″ protocol=”HTTP/1.1″ connectionTimeout=”20000″ redirectPort=”8443″ /> 的8080改为80(根据实际需要,我这边要求是80端口访问)
  • <Connector port=”8009″ protocol=”AJP/1.3″ redirectPort=”8443″ /> 的8009改为8010(或其他未使用的端口),前2个必须要改,这个就不清楚了,可选项,不过反正都要改了都全改了吧。

最后分别开启两个tomcat的bin下的startup.bat就可以了。

    原文作者:阮家炜
    原文地址: https://segmentfault.com/a/1190000015277417
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞