同一个tomcat启动多个实例

摘要:
通常,当使用Tomcat时,服务器将从conf和webapps目录中读取配置文件,并将这些文件写入log、temp和work目录。当然,一些jar文件和类文件需要从服务器的公共目录树加载。因此,为了使多个实例同时运行,每个Tomcat实例必须有自己的目录集。

一般在使用Tomcat时,服务器会从conf及webapps目录中读取配置文件,并将文件写入logs、temp和work目录,当然一些jar文件和class文件需要从服务器的公共目录树中予以加载。因此,为了让多个实例能同时运行,每一个Tomcat实例都必须有自己的目录集

首先下载安装tomcat,这里jdk的安装就不提了

tar xf apache-tomcat-8.5.16.tar.gz -C /usr/local

然后,创建一个文件夹tomcat-instance(该文件夹用于存放tomcat所有实例),并在这个文件夹下分别创建tomcat1和tomcat2两个实例文件夹:

[root@wadeson local]# ll
drwxr-xr-x. 9 root root 4096 8月 9 15:24 apache-tomcat-8.5.16

drwxr-xr-x.  4 root root 4096 8月   9 15:38 tomcat-instance

cd tomcat-instance

mkdir tomcat1 tomcat2

cd tomcat1然后拷贝需要的一些目录

cp -a /usr/local/apache-tomcat-8.5.16/conf  ./

创建一些必须的工作和应用目录:mkdir logs webapps work temp

[root@wadeson tomcat1]# ll
总用量 20
drwx------. 3 root root 4096 8月 9 15:41 conf
drwxr-xr-x. 2 root root 4096 8月 9 15:31 logs
drwxr-xr-x. 2 root root 4096 8月 9 15:26 temp
drwxr-xr-x. 8 root root 4096 8月 9 15:45 webapps
drwxr-xr-x. 3 root root 4096 8月 9 15:40 work

修改tomcat1实例下面的server.xml,因为各实例必须使用不同的端口

<Server port="8012"shutdown="SHUTDOWN">

<Connector port="8081" protocol="HTTP/1.1"

<Connector port="8010"protocol="AJP/1.3" redirectPort="8443" />

<Host name="localhost"  appBase="/usr/local/tomcat-instance/tomcat1/webapps"

<Context path="" docBase="ROOT"reloadable="true"/>

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="/usr/local/tomcat-instance/tomcat1/logs"

然后去创建相应的目录:mkdir classes lib META-INF WEB-INF

[root@wadeson webapps]# pwd
/usr/local/tomcat-instance/tomcat1/webapps

[root@wadeson webapps]# ll
总用量 24
drwxr-xr-x. 2 root root 4096 8月 9 15:45 classes
drwxr-xr-x. 2 root root 4096 8月 9 15:45 lib
drwxr-xr-x. 2 root root 4096 8月 9 15:45 META-INF
drwxr-xr-x. 2 root root 4096 8月 9 15:44 myapp
drwxr-xr-x. 2 root root 4096 8月 9 15:40 ROOT
drwxr-xr-x. 2 root root 4096 8月 9 15:45 WEB-INF

在myapp和ROOT目录下面分别有index.jsp文件

最后为实例tomcat1创建start和stop脚本

[root@wadeson tomcat-instance]# cat start-tomcat1.sh
#!/bin/bash
export CATALINA_HOME=/usr/local/apache-tomcat-8.5.16
export CATALINA_BASE=/usr/local/tomcat-instance/tomcat1           指的是实例名,如果只有一个就和home变量一样
cd ${CATALINA_HOME}
./bin/catalina.sh start

[root@wadeson tomcat-instance]# cat stop-tomcat1.sh
#!/bin/bash
export CATALINA_HOME=/usr/local/apache-tomcat-8.5.16
export CATALINA_BASE=/usr/local/tomcat-instance/tomcat1
cd ${CATALINA_HOME}
./bin/catalina.sh stop

chmod +x start-tomcat1.sh stop-tomcat1.sh

然后启动实例tomcat1:

[root@wadeson tomcat-instance]# sh start-tomcat1.sh
Using CATALINA_BASE: /usr/local/tomcat-instance/tomcat1        这里则是tomcat实例名
Using CATALINA_HOME: /usr/local/apache-tomcat-8.5.16
Using CATALINA_TMPDIR: /usr/local/tomcat-instance/tomcat1/temp
Using JRE_HOME: /usr/java/latest
Using CLASSPATH: /usr/local/apache-tomcat-8.5.16/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.16/bin/tomcat-juli.jar
Tomcat started.

[root@wadeson tomcat-instance]# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 14669/sshd
tcp 0 0 ::ffff:127.0.0.1:8012 :::* LISTEN 6752/java
tcp 0 0 :::8081 :::* LISTEN 6752/java
tcp 0 0 :::22 :::* LISTEN 14669/sshd
tcp 0 0 :::8010 :::* LISTEN 6752/java

访问网站:

同一个tomcat启动多个实例第1张

同一个tomcat启动多个实例第2张

 创建tomcat2实例:

cd tomcat2

[root@wadeson tomcat2]# cp -a /usr/local/apache-tomcat-8.5.16/conf ./
[root@wadeson tomcat2]# ll
总用量 4
drwx------. 2 root root 4096 6月 22 01:02 conf

[root@wadeson tomcat2]# mkdir logs webapps work temp
[root@wadeson tomcat2]# ll
总用量 20
drwx------. 2 root root 4096 6月 22 01:02 conf
drwxr-xr-x. 2 root root 4096 8月 9 16:12 logs
drwxr-xr-x. 2 root root 4096 8月 9 16:12 temp
drwxr-xr-x. 2 root root 4096 8月 9 16:12 webapps
drwxr-xr-x. 2 root root 4096 8月 9 16:12 work

[root@wadeson webapps]# mkdir ROOT WEB-INF META-INF classes lib tomcat2_app
[root@wadeson webapps]# ll
总用量 24
drwxr-xr-x. 2 root root 4096 8月 9 16:15 classes
drwxr-xr-x. 2 root root 4096 8月 9 16:15 lib
drwxr-xr-x. 2 root root 4096 8月 9 16:15 META-INF
drwxr-xr-x. 2 root root 4096 8月 9 16:15 ROOT
drwxr-xr-x. 2 root root 4096 8月 9 16:15 tomcat2_app
drwxr-xr-x. 2 root root 4096 8月 9 16:15 WEB-INF

修改server.xml:

<Server port="8013" shutdown="SHUTDOWN">

<Connector port="8082"protocol="HTTP/1.1"

<Connector port="8011" protocol="AJP/1.3" redirectPort="8443" />

<Host name="localhost"  appBase="/usr/local/tomcat-instance/tomcat2/webapps"

<Context path="" docBase="ROOT" reloadable="true" />

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="/usr/local/tomcat-instance/tomcat2/logs"

创建实例tomcat2启动和停止脚本:

[root@wadeson tomcat-instance]# cat start-tomcat2.sh
#!/bin/bash
export CATALINA_HOME=/usr/local/apache-tomcat-8.5.16
export CATALINA_BASE=/usr/local/tomcat-instance/tomcat2
cd ${CATALINA_HOME}
./bin/catalina.sh start

[root@wadeson tomcat-instance]# cat stop-tomcat2.sh
#!/bin/bash
export CATALINA_HOME=/usr/local/apache-tomcat-8.5.16
export CATALINA_BASE=/usr/local/tomcat-instance/tomcat2
cd ${CATALINA_HOME}
./bin/catalina.sh stop

启动tomcat2实例:

[root@wadeson tomcat-instance]# sh start-tomcat2.sh
Using CATALINA_BASE: /usr/local/tomcat-instance/tomcat2
Using CATALINA_HOME: /usr/local/apache-tomcat-8.5.16
Using CATALINA_TMPDIR: /usr/local/tomcat-instance/tomcat2/temp
Using JRE_HOME: /usr/java/latest
Using CLASSPATH: /usr/local/apache-tomcat-8.5.16/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.16/bin/tomcat-juli.jar
Tomcat started.

[root@wadeson tomcat-instance]# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 14669/sshd
tcp 0 0 :::8011 :::* LISTEN 6866/java
tcp 0 0 ::ffff:127.0.0.1:8012 :::* LISTEN 6752/java
tcp 0 0 ::ffff:127.0.0.1:8013 :::* LISTEN 6866/java
tcp 0 0 :::8081 :::* LISTEN 6752/java
tcp 0 0 :::8082 :::* LISTEN 6866/java
tcp 0 0 :::22 :::* LISTEN 14669/sshd
tcp 0 0 :::8010 :::* LISTEN 6752/java
udp 0 0 0.0.0.0:68 0.0.0.0:* 1780/dhclient

访问网站:

同一个tomcat启动多个实例第3张

同一个tomcat启动多个实例第4张

至此多实例的tomcat就部署完成了

当把Web应用的文件和Tomcat发行版的文件分开管理后,升级Tomcat将会变得十分容易,因为我们可以用新目录直接替换整个Tomcat发行版的目录。(升级替换tomcat版本目录就行,替换webapps应用就行)

免责声明:文章转载自《同一个tomcat启动多个实例》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SELinux的启动和关闭(1)vue点击图片预览(可旋转、翻转、缩放、上下切换、键盘操作)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

配置nginx

aNULL:!MD5:!...

Cesium快速上手10-Viewer Entities组合

src=Box.html&label=Geometriesimage.pngbox就是立方体cylinder是圆锥圆柱varviewer=newCesium.Viewer;varblueBox=viewer.entities.add;varredBox=viewer.entities.add;varoutlineOnly=viewer.entitie...

关于WINFORM中输入法的设置

关于WINFORM(转移到)John Suna的专栏开发中输入方法的设置,它碰巧遇到了这种问题。网络真的很好:)这是文本集。感谢作者的辛勤工作给您带来的便利。在WINFORM中,我们经常遇到这样的问题:文本输入框中的输入法被禁用或总是更改为全宽输入法。查阅相关数据后,总结如下:(1)Control.ImeMode属性:获取或设置控件的输入方法编辑器模式。此模...

微信支付服务商模式支付与普通微信支付的配置区别

chapter=7_7&index=5注:与普通微信支付相比,源代码是上述7/8之间的区别,其他可以看作是服务提供商自己的微信支付配置;...

C#控件重绘学习(一)

由于需要制作工业控制软件,传统的控制已不能满足实际要求,因此控制的重新绘制迫在眉睫。因为考研花费了很多时间,而C#的学习已经搁浅了很长时间,所以我打算借此机会仔细彻底地研究控件的重新绘制。首先,查看Button的旧背景:namespace:SystemWindows.Forms程序集:System.Windows.FormsButton具有太多属性:例如Ba...

vant上传文件到后端

Html代码&lt;Ts代码文件列表=[]/image/[a-zA-z]+/。test(file.file.type)){this.$toast(“请上传图片”);returnfalse;config).then(res=&gt;})。捕获(()=&gt;拒绝)=&gt;ts=“+newDate().getTime()).然后...