Tomcat 单机多实例使用记录
目录
- 参考资料
- CATALINA_HOME 属性 VS CATALINA_BASE 属性
- 步骤
- 1. 创建 CATALINA_BASE 使用的目录
- 2. 拷贝配置文件添加hello应用
- 2.1 拷贝配置文件
- 2.2 conf\server.xml 添加应用配置
- 2.3 webapps下添加 hello 应用
- 3. 启动 tomcat
- 4. 验证
- 5. 添加第2个tomcat实例
- 5.1 拷贝 tomcat-instance_1 并重命名为 tomcat-instance_2
- 5.2 修改占用端口
- 5.3 启动 tomcat
- 5.4 验证
参考资料
- CATALINA_BASE : https://tomcat.apache.org/tomcat-8.5-doc/introduction.html#CATALINA_HOME_and_CATALINA_BASE
- Tomcat 8.5 官方文档
CATALINA_HOME 属性 VS CATALINA_BASE 属性
- CATALINA_HOME : 表示 tomcat 安装目录。
- CATALINA_BASE:表示1个特定的 Tomcat 实例的运行配置的根目录。
默认情况,CATALINA_BASE = CATALINA_HOME
步骤
1. 创建 CATALINA_BASE 使用的目录
| 目录 | 内容 | 是否推荐 |
|---|---|---|
| bin | 包含 setenv.sh, setenv.bat,tomcat-juli.jar 文件。查找顺序:先查找 CATALINA_BASE,如果没有 CATALINA_BASE 则查找 CATALINA_HOME | 否 |
| lib | 存放应用依赖的外部 jar。查找顺序:先查找 CATALINA_BASE,如果没有 CATALINA_BASE 则查找 CATALINA_HOME | 是 |
| logs | 存放该 tomcat 实例的日志文件 | 是 |
| webapps | web 应用 | 是 |
| work | 为已经部署的应用提供临时工作目录 | 是 |
| temp | JVM 使用的临时文件 | 是 |
| conf | server.xml和 context.xml 等文件。最好是将 CATALINA_HOME\conf 下的内容全部拷贝过来 | 是 |
2. 拷贝配置文件添加hello应用
2.1 拷贝配置文件
将 CATALINA_HOME\conf 下的配置文件全部拷贝到 CATALINA_BASE\conf 下:
2.2 conf\server.xml 添加应用配置
- server.xml 添加 hello 应用配置:
...
- 修改server.xml中占用端口
...
...
2.3 webapps下添加 hello 应用
webapps 下创建 hello 文件夹,并在文件夹下添加 hello.html 文件,hello.html 内容如下:
welcome to my app!
3. 启动 tomcat
cd E:\work\software\apache-tomcat-8.5.77
set CATALINA_BASE=E:\work\software\tomcat-instance_1
bin\startup.bat
将会弹出独立的 tomcat 启动窗口:
CMD 窗口中 tomcat 启动日志中文乱码
解决方案:将 conf\logging.properties 的 java.util.logging.ConsoleHandler.encoding 改为 gbk:
#java.util.logging.ConsoleHandler.encoding = UTF-8
java.util.logging.ConsoleHandler.encoding = gbk
修改后,重启 tomcat:
4. 验证
浏览器访问 http://localhost:7080/hello/hello.html
5. 添加第2个tomcat实例
5.1 拷贝 tomcat-instance_1 并重命名为 tomcat-instance_2
5.2 修改占用端口
修改server.xml中占用端口
...
...
5.3 启动 tomcat
cd E:\work\software\apache-tomcat-8.5.77
set CATALINA_BASE=E:\work\software\tomcat-instance_2
bin\startup.bat
5.4 验证
浏览器访问 http://localhost:9080/hello/hello.html
至此,Tomcat 单机多实例验证结束。