同一机器启动两个Tomcat部署配置
需求
现有项目正常使用的情况下,迁移一份项目至新的端口使用
tomcat
复制tomcat,复制出来的新的tomcat作为新环境运行所需
修改tomcat--config--server.xml配置文件
修改端口一:
修改负责监听关闭tomcat的请求的端口
<Server port="8005" shutdown="SHUTDOWN">
修改为:
<Server port="8055" shutdown="SHUTDOWN">
修改端口二:
修改监听来自客户端的请求的端口
<Connector port="8080" protocol="HTTP/1.1"
修改为:
<Connector port="8088" protocol="HTTP/1.1"
修改端口三:
修改服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号
redirectPort="8443" URIEncoding="UTF-8"
修改为:
redirectPort="8444" URIEncoding="UTF-8"
修改tomcat--bin--catalina.bat配置文件
修改环境变量名一:
这里的环境变量名,由于生产环境有配置的CATALINA_HOME2环境变量(用于设置当前tomcat启动路径),对应的为原tomcat的路径,需要将这里的环境变量改为系统默认的CATALINA_HOME或者自己配置的环境变量(系统默认的不需要再手动配置环境变量,否则需要手动配置一个环境变量,路径为当前tomcat的路径)
CATALINA_HOME2
修改为:
CATALINA_HOME
修改环境变量名二:
同上述一样
CATALINA_BASE2
修改为:
CATALINA_BASE
修改tomcat显示名:
修改tomcat窗口名称,用来区分不同tomcat窗口
if "%TITLE%" == "" set TITLE=TOMCAT
修改为:
if "%TITLE%" == "" set TITLE=TOMCAT-NEW
修改tomcat--bin--startup.bat配置文件
修改环境变量名一:
这里的环境变量名,由于生产环境有配置的CATALINA_HOME2环境变量(用于设置当前tomcat启动路径),对应的为原tomcat的路径,需要将这里的环境变量改为系统默认的CATALINA_HOME或者自己配置的环境变量(系统默认的不需要再手动配置环境变量,否则需要手动配置一个环境变量,路径为当前tomcat的路径)
CATALINA_HOME2
修改为:
CATALINA_HOME
修改原因
- 如果CATALINA_HOME环境变量没有定义,将CATALINA_HOM环境变量设置为bat文件的启动目录(这里就是当前目录);
- 如果CATALINA_HOME不为空,则判断是否存在%CATALINA_HOME%\bin\catalina.bat(即找bin目录下的另一个批处理文件,catalina.bat);否则将CATALINA_HOME设置为当前目录,继续找catalina.bat;
- 执行catalina.bat启动tomcat;
- 如此就可以明白,如果设置了CATALINA_HOME这个环境变量,那么无论startup.bat从哪个tomat启动,都会找到环境变量对应目录下的catalina.bat来启动对应的tomcat。
解决办法
解决办法就是:
1、如上,将CATALINA_HOME2修改为默认的CATALINA_HOME(环境变量中设置了CATALINA_HOME2,没有设置CATALINA_HOME)
2、去掉CATALINA_HOME2这个环境变量,让各个Tomcat都直接从startup.bat所在的目录启动即可。
修改tomcat--bin--setclasspath.bat配置文件
添加jdk位置:
环境变量中配置有JAVA_HOME与JRE_HOME,tomcat启动时候会默认使用环境变量中配置的jdk
如果想指定tomcat使用不同的jdk
可以在该配置文件中设置当前tomcat使用的jdk
rem Make sure prerequisite environment variables are set
rem In debug mode we need a real JDK (JAVA_HOME)
if ""%1"" == ""debug"" goto needJavaHome
rem Otherwise either JRE or JDK are fine
if not "%JRE_HOME%" == "" goto gotJreHome
if not "%JAVA_HOME%" == "" goto gotJavaHome
修改为:
rem Make sure prerequisite environment variables are set
set JAVA_HOME=C:\Program Files\java\jdk
set JRE_HOME=C:\Program Files\java\jdk\jre
rem In debug mode we need a real JDK (JAVA_HOME)
if ""%1"" == ""debug"" goto needJavaHome
rem Otherwise either JRE or JDK are fine
if not "%JRE_HOME%" == "" goto gotJreHome
if not "%JAVA_HOME%" == "" goto gotJavaHome
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~