一般的部署途徑
Tomcat 的部署途徑很多,一般有如下幾種:
- 直接將 War 包拷貝到 webapps 目錄中,然后啟動 Tomcat。
- 登陸 Tomcat 管理控制台http://localhost:8080/,輸入用戶名和密碼后便可管理應用並動態發布。
接下來記錄一下多端口項目部署的步驟。
多端口項目的部署策略
要想在 Tomcat 上部署不同端口的項目,其實只需要修改 conf 文件夾的 server.xml 即可。在 Server 元素下可以看到 Service 子元素,其中 Connector 的 Port 是默認的 8080。接下來只要創建多個 Service 子元素就行了,修改其中的 port 就可以。
先來看看 8080 端口的 Service 是如何配置的:
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<!-- Use the LockOutRealm to prevent attempts to guess user passwords
via a brute-force attack -->
<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_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
接下來要配置新的端口了,那么要修改哪些地方呢?來列舉一下:
- Service 標簽 的 name 屬性
- Connector 的 port 屬性,也就是端口號
- Engine 的 name 屬性
- Host 的 appBase 屬性
OK,繼續在 8080 這個 Service 的后面,也就是與之為兄弟節點關系的位置注入以下配置代碼:
<Service name="Catalina_QueenWeb">
<Connector port="8500" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<!-- Define an AJP 1.3 Connector on port 8009 -->
<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->
<Engine name="Catalina_QueenWeb" defaultHost="localhost">
<!-- Use the LockOutRealm to prevent attempts to guess user passwords
via a brute-force attack -->
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapp_QueenWeb" 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>
修改了哪些內容呢?
- Service 標簽 的 name 屬性值為 Catalina_QueenWeb
- Connector 的 port 屬性值為 8500(該端口號可以自由擬定)
- Engine 的 name 屬性值為 Catalina_QueenWeb
- Host 的 appBase 屬性值為 webapp_QueenWeb
來看一下 Tomcat 內部的文件夾:
可以看到,除了默認的 webapps 文件夾,還有一個新創建的 webapp_QueenWeb,只要把打包好的 War 包直接拷貝進去即可:
最后,啟動 Tomcat 服務(startup.bat)即可,同時會發現,這個 War 包會自解壓為一個文件夾!