要求
只有一台阿里云服务器,服务器上只有一个tomcat,已经运行了一个项目在8080端口上。
接下来要部署第2个传统的SSM项目。
实现思路
通过端口号区分项目,不同端口部署不同的项目。
开始操作
下面开始演示
1.webapps
复制tomcat文件夹下的webapps文件夹,并重命名为webapps1
参考命令:
新建webapps1文件夹:
mkdir webapps1
复制webapps文件夹的内容到webapps1下
cp -a /usr/local/tomcat/apache-tomcat-7.0.57/webapps/* /usr/local/tomcat/apache-tomcat-7.0.57/webapps11
2.Catalina
复制tomcat/conf文件夹下的Catalina文件夹,并重命名为Catalina1
参考命令:
新建Catalina1文件夹:
mkdir Catalina1
复制Catalina文件夹的内容到Catalina1下
cp -a /usr/local/tomcat/apache-tomcat-7.0.57/conf/Catalina/* /usr/local/tomcat/apache-tomcat-7.0.57/conf/Catalina1
3.server.xml
打开tomcat/conf下的server.xml文件,
复制一段Service节点的内容,并修改其中的Service name、Connector port、Engine name、appBase。
Service name:改为Catalina1
第一个Connector port:项目运行端口,即项目中pom.xml下plugin > configuration > port节点中的端口号。
第2个Connector port:一个未被占用的端口。
Engine name:改为Catalina1
appBase:改为webapps1
相关代码:
<Service name="Catalina1">
<Connector port="8090" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8019" protocol="AJP/1.3" 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="webapps1"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
4.重启Tomcat
完成以上修改后,重启Tomcat。
注意:
考虑到是阿里云服务器,还需要修改服务器安全组的相关策略,开放端口,即第一个Connector port的端口号。
5.部署
确认项目的pom.xml 配置好相关参数,即plugin下的参数,如下所示:
相关代码如下:
<configuration>
<port>8090</port>
<url>http://11.22.33.44:8090/manager/text</url>
<server>tomcat7</server>
<username>tomcat</username>
<password>tomcat</password>
<path>/</path>
<uriEncoding>UTF-8</uriEncoding>
</configuration>
使用tomcat的redeploy命令,如clean tomcat7:redeploy进行部署。
部署成功后,即可访问8090端口上的项目。而8080端口上的项目也能正常访问。
补充:
如果想部署第3个项目,按照上面的方式再来一遍即可,记得使用不同的文件夹和端口号。