tomcat - 如何配置两个版本的tomcat一次只在8080端口运行一个
问题描述
此时我可以配置为运行两个版本的 tomcat(8 和 9)以在不同的 HTTP 端口 Z 和 Z+1 上运行。我所做的是
- 将两个单独的 systemd 单元文件作为 tomcat.service 和 tomcat9.service 下面放在两个文件中的它们自己的目的地。
环境=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
环境=CATALINA_HOME=/opt/tomcat
环境=CATALINA_BASE=/opt/tomcat
- 更改了两个实例的端口:
- 服务器端口="Y 和 Y+1" 关机="SHUTDOWN"
- 连接器端口="Z 和 Z+1" 协议="HTTP/1.1"connectionTimeout="20000" redirectPort="B 和 B+1"
- 连接器协议="AJP/1.3" 地址="::1" 端口="8010" 重定向端口="B 和 B+1"
我可以同时运行这两个实例。但是现在我希望两个实例都具有相同的 Z 端口,并且只能保证一个实例随时运行。我错过了任何配置吗?
解决方案
正如@Piotr P. Karwasz 所提到的,我在 [Unit] 部分下添加了 Conflicts=otherservicename.service ,因此它会停止其他服务所挂起的任何内容,从而阻止当前服务不正确运行。
[Unit]
Conflicts=tomcat9.service
推荐阅读
- powerbi - Power Bi Desktop - 如何在表之间添加值?
- python - SQLAlchemy:动态传递模式和表名,避免 SQL 注入
- scala - 广播 TypeSafe Config 抛出异常用户类抛出异常:java.io.UTFDataFormatException:编码字符串太长:70601 字节?
- react-native - 将从一个屏幕分配的变量传递到另一个屏幕
- python-3.x - RuntimeError:张量 a (133) 的大小必须与非单维 1 的张量 b (10) 的大小相匹配
- java - 通过 IntelliJ IDEA 从 Windows 桌面远程调试在 Linux VM 上运行的 SOA 应用程序的最有效/自动化的方法是什么?
- c# - 复选框和 API 23 的问题
- html - 仅模糊背景图像而不是前面的文本
- decentralized-identity - 尝试使用 ion 方法注册时收到错误的请求响应
- json - Console.log() 不工作,但 Alert() 功能工作