Skip to content

Commit d57cef2

Browse files
committed
Linux配置Tomcat的单机多实例
1 parent 09eb06d commit d57cef2

1 file changed

Lines changed: 146 additions & 0 deletions

File tree

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
---
2+
title: Linux配置Tomcat的单机多实例
3+
date: 2018-08-10 01:14:35
4+
url: develop/install-tomcat-many-instance
5+
tags:
6+
- Tomcat
7+
categories:
8+
- Linux
9+
---
10+
11+
![多示例](https://cdn.jsdelivr.net/gh/niumoo/cdn-assets/2019/1571963198487.png)
12+
13+
有时候需要在一个服务器上部署多个Tomcat,通过不同的端口进行区分,比如,反向代理。但是不想简单的通过复制Tomcat来实现,这样既不方便以后的升级也不方便管理,那么这时候就需要配置Tomcat的单机多实例了。
14+
以下操作运行于Linux下。
15+
16+
### Tomcat 下载
17+
Tomcat的下载可以直接到Tomcat官方网站下载自己需要的版本,博主这里下载的Tomcat8.5.*32*
18+
19+
```shell
20+
// 解压
21+
tar -zxvf apache-tomcat-8.5.32.tar.gz
22+
```
23+
<!-- more -->
24+
可以看到解压后目录如下:
25+
26+
```shell
27+
niu@ubuntu:~/develop/test$ cd apache-tomcat-8.5.32/
28+
niu@ubuntu:~/develop/test/apache-tomcat-8.5.32$ ll
29+
total 120
30+
drwxr-x--- 2 niu niu 4096 8月 10 01:35 bin/
31+
drwx------ 2 niu niu 4096 6月 20 12:53 conf/
32+
drwxr-x--- 2 niu niu 4096 8月 10 01:35 lib/
33+
-rw-r----- 1 niu niu 57092 6月 20 12:53 LICENSE
34+
drwxr-x--- 2 niu niu 4096 6月 20 12:50 logs/
35+
-rw-r----- 1 niu niu 1723 6月 20 12:53 NOTICE
36+
-rw-r----- 1 niu niu 7138 6月 20 12:53 RELEASE-NOTES
37+
-rw-r----- 1 niu niu 16246 6月 20 12:53 RUNNING.txt
38+
drwxr-x--- 2 niu niu 4096 8月 10 01:35 temp/
39+
drwxr-x--- 7 niu niu 4096 6月 20 12:51 webapps/
40+
drwxr-x--- 2 niu niu 4096 6月 20 12:50 work/
41+
```
42+
43+
### 配置多实例模版
44+
要实现单Tomcat的多实例启动,首先我们要修改一下当前的Tomcat目录结构具体操作如下。为了方便,我们会先配置一个模版实例,然后在模版实例中编写一个启动停止shell脚本。以后扩展实例只需要拷贝一份修改端口号。
45+
```shell
46+
// 删除无用文件
47+
rm LICENSE
48+
rm NOTICE
49+
rm RELEASE-NOTES
50+
rm RUNNING.txt
51+
// 创建WEB实例模版文件夹,以后部署新实例只需要拷贝一份
52+
mkdir web-template
53+
// 移动实例文件到实例模版文件夹
54+
mv conf/ ./web-template/
55+
mv logs/ ./web-template/
56+
mv tem/ ./web-template/
57+
mv temp/ ./web-template/
58+
mv webapps/ ./web-template/
59+
mv work/ ./web-template/
60+
```
61+
在模版文件夹下编写启动停止Tomcat的shell脚本。
62+
```shell
63+
// 新建sehll脚本
64+
vim tomcat.sh
65+
```
66+
输入如下内容:
67+
```shell
68+
RETVAL=$?
69+
# tomcat实例目录
70+
export CATALINA_BASE="$PWD"
71+
# tomcat安装目录,改成自己的
72+
export CATALINA_HOME="/home/niu/develop/test/apache-tomcat-8.5.32"
73+
# 可选
74+
export JVM_OPTIONS="-Xms128m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=512m"
75+
case "$1" in
76+
start)
77+
if [ -f $CATALINA_HOME/bin/startup.sh ];then
78+
echo $"Start Tomcat"
79+
$CATALINA_HOME/bin/startup.sh
80+
fi
81+
;;
82+
stop)
83+
if [ -f $CATALINA_HOME/bin/shutdown.sh ];then
84+
echo $"Stop Tomcat"
85+
$CATALINA_HOME/bin/shutdown.sh
86+
fi
87+
;;
88+
*)
89+
echo $"Usage:$0 {start|stop}"
90+
exit 1
91+
;;
92+
esac
93+
exit $RETVAL
94+
```
95+
保存退出,赋予执行权限。
96+
```shell
97+
chmod +x tomcat.sh
98+
```
99+
经过上面的操作,现在的Tomcat目录结构如下:
100+
```shell
101+
apache-tomcat-8.5.32
102+
├── bin
103+
├── lib
104+
└── web-template
105+
├── conf
106+
├── logs
107+
├── temp
108+
├── webapps
109+
└── work
110+
```
111+
### 测试实例模版
112+
实例模版中包含config文件夹,也就是此实例的配置文件,可以修改端口号等信息。我们没有进行修改过,默认也就是`8080`。webapps文件夹中的ROOT目录也就是Tomcat的默认发布目录,我们没有进行修改,里面存放的是Tomcat默认首页信息。
113+
```shell
114+
// 启动模版实例进行测试,可以看到正常启动的日志
115+
tomcat.sh start
116+
// 停止则使用stop
117+
tomcat.sh stop
118+
```
119+
成功启动后,访问IP+8080进行测试。
120+
![Tomcat首页](https://cdn.jsdelivr.net/gh/niumoo/cdn-assets/2019/119d56104ea62415e369bae13f6269b6.png)
121+
看到属性的页面,大功告成。距离多实例只有一步之遥。
122+
123+
### 增加一个实例
124+
增加一个实例,只拷贝一份模版实例。然后修改端口号即可。不然会因为端口占用而无法启动。
125+
```shell
126+
# 拷贝一份实例
127+
cp -r web-template/ web-9090
128+
# 修改端口号为9090
129+
vim conf/server.xml
130+
# 修改HTTP端口号从8080变为9090,第69行左右
131+
<Connector port="9090" protocol="HTTP/1.1"
132+
connectionTimeout="20000"
133+
redirectPort="8443" />
134+
# 修改SHUTDOWN端口号从8005变为9005,第22行左右
135+
ver port="9005" shutdown="SHUTDOWN">
136+
# 保存,退出,启动
137+
tomcat.sh start
138+
```
139+
140+
此时可以访问IP+端口9090进行访问测试。
141+
![9090实例访问测试](https://cdn.jsdelivr.net/gh/niumoo/cdn-assets/2019/e73313a3dd0634c258ae09e34e8be295.png)
142+
143+
到这里,多实例已经部署完成,关闭各个Tomcat。退出终端。
144+
145+
增加实例只需要拷贝模版实例然后修改端口号。每个实例都有自己单独的配置,可以独立管理启动。
146+

0 commit comments

Comments
 (0)