通过单个服务器安装运行 Tomcat 的多个实例
通过单个服务器安装运行 Tomcat 的多个实例
很多时候,我们遇到需要修改服务器配置以使其特定于应用的情况。 而且,如果我们有多个这样的应用,并且希望每个应用都具有自己定义的配置选项,那么它就需要某种配置。 在本教程中,我将讨论为每个应用使用不同的 tomcat 实例而应进行的更改。
配置 Tomcat 服务器的多个实例的步骤
我正在使用 Windows 机器,您将使用 Windows 格式的路径。 但是创建所有实例的过程在所有其他操作系统中都是相同的。 另外,我假设您要创建 2 个新的 tomcat 实例。 现在开始阅读完成目标的完整步骤。
步骤 1)安装 Tomcat 服务器
这是非常明显的第一步。 假设我们的 tomcat 安装目录为“C:/tomcatServer
”。
步骤 2)在不同位置创建 2 个新的不同文件夹
这些文件夹用于存储实例特定的配置和其他数据,例如日志,临时数据。
假设新文件夹为“C:/tomcatInstanceOne
”和“C:/tomcatInstanceTwo
”。
步骤 3)将“conf
”文件夹从服务器文件夹复制到实例文件夹
为了使每个实例具有不同的配置,必须执行此步骤。 任何与实例特定的配置相关的更改应仅在相关实例文件夹中进行。
步骤 4)创建实例特定的startup.bat
和shutdown.bat
启动和关闭特定实例将需要这些文件。 文件内容如下:
startup.bat
set CATALINA_HOME=C:\tomcatServer
set CATALINA_BASE=C:\tomcatInstanceOne
C:\tomcatServer\bin\startup.bat
shutdown.bat
set CATALINA_HOME=C:\tomcatServer
set CATALINA_BASE=C:\tomcatInstanceOne
C:\tomcatServer\bin\shutdown.bat
将两个文件都放在两个实例特定文件夹内的“bin
”文件夹中。 例如,创建文件夹C:/tomcatInstanceOne/bin
并复制两个文件。
第一个属性(CATALINA_HOME
)指向所有正在运行的实例之间可共享的公共信息的位置,而其他属性(CATALINA_BASE
)指向所有实例特定信息的存储目录。
步骤 5)创建setenv.bat
以设置实例特定的环境配置
在“C:\tomcatInstanceOne\bin
”(以及第二个实例文件夹)目录中创建一个名为setenv.bat
的文件,以设置C:\tomcatServer\bin\catalina.bat
中提到的任何环境变量。 在这里设置系统属性,JPDA 地址等。
步骤 6)为日志,临时文件等创建更多文件夹
现在是时候创建更多文件夹了,这些文件夹将在您的应用实际运行时使用。 这些文件夹类似于日志,临时文件,Web 应用和工作文件夹。 在两个实例文件夹中分别创建它们。
只需确保编辑conf\server.xml
文件,以使关闭端口和 HTTP 连接器端口不会干扰其他可能正在运行的 tomcat 实例。
例如,更改 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" />
完成上述更改后,您应该能够在计算机中启动同一 tomcat 服务器的多个实例。 如果您被打中,请告诉我。