在同一个服务器上部署多个tomcat应用有多种方式,这里指的是拷贝多份tomcat,然后运行在不同的端口。
场景描述:服务器是CentOS7,内存4G,需要安装两个tomcat7。
解决方案:新建用户user007,在用户目录拷贝两份tomcat,并且最终配置如下:
tomcat1: /home/user007/tomcat1,运行在端口9001,运行内存1.5G;
tomcat2: /home/user007/tomcat2,运行在端口9002,运行内存1.5G;
概要:
1、安装tomcat
2、配置tomcat1
3、启动tomcat1
4、配置tomcat2
5、启动tomcat2
一、安装tomcat
1.1 下载
前往官网:Index of /dist/tomcat/tomcat-7,在此目录下查找需要的版本,比如7.0.109:
shell> cd /home/user007
# 先进入user007根目录,后续的下载、解压、运行文件都可以集中放置在user007目录中
shell> wget https://archive.apache.org/dist/tomcat/tomcat-7/v7.0.109/bin/apache-tomcat-7.0.109.tar.gz
下载后得到压缩文件:/home/user007/apache-tomcat-7.0.109.tar.gz。
1.2 解压tomcat
shell> tar -zxvf apache-tomcat-7.0.109.tar.gz -C /home/user007
解压后得到tomcat:/home/user007/apache-tomcat-7.0.109。
二、配置tomcat1
2.1 拷贝tomcat
shell> cp -R apache-tomcat-7.0.109 tomcat1
得到tomcat1的目录:/home/user007/tomcat1。
2.2 配置内存和运行路径
shell > vi /home/user007/tomcat1/bin/catalina.sh
在 # OS specific support. $var _must_ be set to either true or false. 这一行下添加环境和内存配置:
# OS specific support. $var _must_ be set to either true or false.
export CATALINA_BASE=/home/user007/tomcat1
export CATALINA_HOME=/home/user007/tomcat1
JAVA_OPTS="-Xms512m -Xmx1536m -XX:PermSize=512m -XX:MaxPermSize=256m -Duser.timezone=GMT+08"
- CATALINA_BASE和CATALINA_HOME:因为有多个tomcat,这里必须指定各自的运行路径。
- JAVA_OPTS="-Xmx1536m ...":指定最大内存为1.5G。
2.3 配置端口
shell> vi /home/user007/tomcat1/conf/server.xml
<Server port="8116" shutdown="SHUTDOWN">
...
<Service name="Catalina">
<Connector port="9001" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Engine name="Catalina1" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_tomcat1_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
- Server port="8116" 停止服务端口,默认为8015
- Connector port="9001" 启动服务端口,默认为8080
- prefix="localhost_tomcat1_access_log" 访问日志文件名前缀字符
2.4 移除多余的webapp
shell> rm -rf /home/user007/tomcat1/webapps/*
默认webapps下面有一些示例、管理的应用,生产环境没有什么用,而且增加了安全风险。可以全部删除掉。
三、启动tomcat1
3.1 添加测试页面
shell> mkdir /home/user007/tomcat1/webapps/ROOT
# 新建网站目录ROOT
shell> echo 'hello tomcat1' > /home/user007/tomcat1/webapps/ROOT/index.html
# 创建测试页面index.html
3.2 启动tomcat1
shell> sh /home/user007/tomcat1/bin/startup.sh
浏览页面 http://localhost:9001。
四、配置tomcat2
4.1 拷贝tomcat
shell> cp -R apache-tomcat-7.0.109 tomcat2
得到tomcat2的目录:/home/user007/tomcat2。
4.2 配置内存和运行路径
shell > vi /home/user007/tomcat2/bin/catalina.sh
在 # OS specific support. $var _must_ be set to either true or false. 这一行下添加环境和内存配置:
# OS specific support. $var _must_ be set to either true or false.
export CATALINA_BASE=/home/user007/tomcat2
export CATALINA_HOME=/home/user007/tomcat2
JAVA_OPTS="-Xms512m -Xmx1536m -XX:PermSize=512m -XX:MaxPermSize=256m -Duser.timezone=GMT+08"
- CATALINA_BASE和CATALINA_HOME:此时tomcat2的路径跟tomcat1就有一些不同了。
- JAVA_OPTS="-Xmx1536m ...":指定最大内存为1.5G。
4.3 配置端口
shell> vi /home/user007/tomcat2/conf/server.xml
<Server port="8117" shutdown="SHUTDOWN">
...
<Service name="Catalina">
<Connector port="9002" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Engine name="Catalina1" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_tomcat2_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
- Server port="8117" 停止服务端口,默认为8015,tomcat1的为8116
- Connector port="9002" 启动服务端口,默认为8080,tomcat1的为9001
- prefix="localhost_tomcat2_access_log" 访问日志文件名前缀字符,跟tomcat1的localhost_tomcat1_access_log区分开来。
4.4 移除多余的webapp
shell> rm -rf /home/user007/tomcat2/webapps/*
同tomcat1的配置,默认的webapps全部删除掉。
五、启动tomcat2
5.1 添加测试页面
shell> mkdir /home/user007/tomcat2/webapps/ROOT
# 新建网站目录ROOT
shell> echo 'hello tomcat2' > /home/user007/tomcat2/webapps/ROOT/index.html
# 创建测试页面index.html
5.2 启动tomcat2
shell> sh /home/user007/tomcat2/bin/startup.sh
浏览页面 http://localhost:9002