tomcat 发行版附带的 RUNNING.txt 表示使用 CATALINA_BASE 变量来启用多个 tomcat 实例。但是如何为每个 tomcat 实例目录设置 CATALINA_BASE 环境变量呢?
3 回答
在您的开发机器上拥有多个 Tomcat 实例非常棒。这是我通常在 Windows 上执行的操作(设置的重要部分在步骤 2、3、4 和 5 中):
- 将 Tomcat 6 的副本安装到目录(如C:\apache-tomcat-6.0.20)。
- 将conf目录复制到另一个目录(如C:\tomcat-1)
- 在C:\tomcat-1下,创建一个bin目录
在C:\tomcat-1\bin目录中,创建一个名为startup.bat的文件,其内容如下:
set CATALINA_BASE=C:\tomcat-1
set CATALINA_HOME=C:\apache-tomcat-6.0.20
C:\apache-tomcat-6.0.20\bin\startup.bat
在C:\tomcat-1\bin目录中,创建一个名为shutdown.bat的文件,其内容如下:
set CATALINA_BASE=C:\tomcat-1
set CATALINA_HOME=C:\apache-tomcat-6.0.20
C:\apache-tomcat-6.0.20\bin\shutdown.bat
可选:在C:\tomcat-1\bin目录中创建一个名为setenv.bat的文件,以设置C:\apache-tomcat-6.0.20\bin\catalina.bat中提到的任何环境变量。这是设置系统属性、JPDA 地址等的地方。
- 在C:\tomcat-1下创建logs、temp、webapps和work目录
- 从C:\tomcat-1目录,运行bin\startup.bat
- 对步骤 2 中的其他安装重复您需要的尽可能多的 tomcat 实例。
尽量不要将 Tomcat 安装在名称中包含空格的目录中。它应该可以工作,但这样你会遇到更少的问题。如果您使用 Windows 的“tomcat 即服务”选项,我不知道这将如何工作。
从这里,您应该能够隔离 tomcat 实例。请务必编辑您的conf\server.xml文件,以便关闭端口和 HTTP 连接器端口不会干扰可能正在运行的其他 Tomcat 实例。我通常为关闭端口分配 8005、8006、8007 等值,为 HTTP 连接器端口分配 8080、8081、8082 等值。
有一个更简单的方法。只需不要将 CATALINA_HOME 定义为您机器上的环境变量。startup.bat 和 shutdown.bat 已经带有以下代码:
if not "%CATALINA_HOME%" == "" goto gotHome
set "CATALINA_HOME=%CURRENT_DIR%"
你应该准备好了。PS:记得编辑 server.xml 并输入一个新的端口号。:)
这个链接有一个对我很有效的答案。其他一些答案似乎忽略的一件事是 server.xml 文件中有多个位置必须修改。在偶然发现这个答案之前,mu tomcat 服务器正在为某些端口相互竞争。我已将 HTTP/1.1 连接器端口更改为 8081,但忽略了更改对我的 tomcat(版本 7)显然很重要的一些其他端口。FWIW 我有一个 tomcat 服务版本和一个非服务版本。
First server.xml file
<connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<server port="8005" shutdown="SHUTDOWN"/>
<connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<connector port="8100" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
Second server.xml file
<connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<server port="8006" shutdown="SHUTDOWN"/>
<connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
<connector port="8101" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
http://www.ansoncheunghk.info/article/5-steps-install-multiple-apache-tomcat-instance-windows