在 Tomcat 8 部署多端口項目

Markdown

通常的部署途徑

Tomcat 的部署途徑不少,通常有以下幾種:javascript

  1. 直接將 War 包拷貝到 webapps 目錄中,而後啓動 Tomcat。
  2. 登錄 Tomcat 管理控制檯http://localhost:8080/,輸入用戶名和密碼後即可管理應用並動態發佈。

接下來記錄一下多端口項目部署的步驟。java

多端口項目的部署策略

要想在 Tomcat 上部署不一樣端口的項目,其實只須要修改 conf 文件夾的 server.xml 便可。在 Server 元素下能夠看到 Service 子元素,其中 Connector 的 Port 是默認的 8080。接下來只要建立多個 Service 子元素就好了,修改其中的 port 就能夠。web

先來看看 8080 端口的 Service 是如何配置的:apache

<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>

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

  1. Service 標籤 的 name 屬性
  2. Connector 的 port 屬性,也就是端口號
  3. Engine 的 name 屬性
  4. Host 的 appBase 屬性

OK,繼續在 8080 這個 Service 的後面,也就是與之爲兄弟節點關係的位置注入如下配置代碼:webapp

<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>

修改了哪些內容呢?code

  1. Service 標籤 的 name 屬性值爲 Catalina_QueenWeb
  2. Connector 的 port 屬性值爲 8500(該端口號能夠自由擬定)
  3. Engine 的 name 屬性值爲 Catalina_QueenWeb
  4. Host 的 appBase 屬性值爲 webapp_QueenWeb

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

Markdown

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

Markdown

最後,啓動 Tomcat 服務(startup.bat)便可,同時會發現,這個 War 包會自解壓爲一個文件夾!blog

相關文章
相關標籤/搜索