在 Tomcat 8 部署多端口項目


Markdown

一般的部署途徑

Tomcat 的部署途徑很多,一般有如下幾種:

  1. 直接將 War 包拷貝到 webapps 目錄中,然后啟動 Tomcat。
  2. 登陸 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 &quot;%r&quot; %s %b" />
    </Host>
  </Engine>
</Service>

接下來要配置新的端口了,那么要修改哪些地方呢?來列舉一下:

  1. Service 標簽 的 name 屬性
  2. Connector 的 port 屬性,也就是端口號
  3. Engine 的 name 屬性
  4. 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 &quot;%r&quot; %s %b" />

	</Host>
  </Engine>
</Service>

修改了哪些內容呢?

  1. Service 標簽 的 name 屬性值為 Catalina_QueenWeb
  2. Connector 的 port 屬性值為 8500(該端口號可以自由擬定)
  3. Engine 的 name 屬性值為 Catalina_QueenWeb
  4. Host 的 appBase 屬性值為 webapp_QueenWeb

來看一下 Tomcat 內部的文件夾:

Markdown

可以看到,除了默認的 webapps 文件夾,還有一個新創建的 webapp_QueenWeb,只要把打包好的 War 包直接拷貝進去即可:

Markdown

最后,啟動 Tomcat 服務(startup.bat)即可,同時會發現,這個 War 包會自解壓為一個文件夾!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM