首页 > 解决方案 > 如何配置两个版本的tomcat一次只在8080端口运行一个

问题描述

此时我可以配置为运行两个版本的 tomcat(8 和 9)以在不同的 HTTP 端口 Z 和 Z+1 上运行。我所做的是

  1. 将两个单独的 systemd 单元文件作为 tomcat.service 和 tomcat9.service 下面放在两个文件中的它们自己的目的地。
  1. 环境=CATALINA_PID=/opt/tomcat/temp/tomcat.pid

  2. 环境=CATALINA_HOME=/opt/tomcat

  3. 环境=CATALINA_BASE=/opt/tomcat

  1. 更改了两个实例的端口:
  1. 服务器端口="Y 和 Y+1" 关机="SHUTDOWN"
  2. 连接器端口="Z 和 Z+1" 协议="HTTP/1.1"connectionTimeout="20000" redirectPort="B 和 B+1"
  3. 连接器协议="AJP/1.3" 地址="::1" 端口="8010" 重定向端口="B 和 B+1"

我可以同时运行这两个实例。但是现在我希望两个实例都具有相同的 Z 端口,并且只能保证一个实例随时运行。我错过了任何配置吗?

标签: tomcatserver

解决方案


正如@Piotr P. Karwasz 所提到的,我在 [Unit] 部分下添加了 Conflicts=otherservicename.service ,因此它会停止其他服务所挂起的任何内容,从而阻止当前服务不正确运行。

[Unit]
Conflicts=tomcat9.service

推荐阅读