web server apache tomcat11-06-Host Manager App

老马啸西风發表於2024-04-18

前言

整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。

開源專案

從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。

系列文章

web server apache tomcat11-01-官方文件入門介紹

web server apache tomcat11-02-setup 啟動

web server apache tomcat11-03-deploy 如何部署

web server apache tomcat11-04-manager 如何管理?

web server apache tomcat11-06-Host Manager App -- Text Interface

web server apache tomcat11-07-Realm Configuration

web server apache tomcat11-08-JNDI Resources

web server apache tomcat11-09-JNDI Datasource

web server apache tomcat11-10-Class Loader

...

簡介

Tomcat 主機管理器應用程式使您能夠在 Tomcat 中建立、刪除和管理虛擬主機。本操作指南最好與以下文件一起使用:

  • 虛擬主機 How-To 獲取有關虛擬主機的更多資訊。
  • 主機容器 獲取有關虛擬主機的底層 XML 配置和屬性描述的更多資訊。

Tomcat 主機管理器應用程式是 Tomcat 安裝的一部分,預設情況下可以使用以下上下文訪問:/host-manager。您可以以下列方式使用主機管理器:

  • 利用圖形使用者介面,可透過以下地址訪問:{伺服器}:{埠}/host-manager/html。
  • 利用一組適用於指令碼編寫的最小 HTTP 請求。您可以在以下地址訪問此模式:{伺服器}:{埠}/host-manager/text。

這兩種方式都可以新增、刪除、啟動和停止虛擬主機。透過使用 persist 命令可以持久化更改。本文件重點介紹文字介面。有關圖形介面的更多資訊,請參閱主機管理器應用程式 -- HTML 介面。

配置管理器應用程式訪問許可權

以下描述使用 $CATALINA_HOME 來引用基本的 Tomcat 目錄。它是您安裝 Tomcat 的目錄,例如 C:\tomcat9 或 /usr/share/tomcat9。

主機管理器應用程式需要具有以下角色之一的使用者:

  • admin-gui - 對於圖形 Web 介面使用此角色。
  • admin-script - 對於指令碼 Web 介面使用此角色。

要啟用對主機管理器應用程式文字介面的訪問許可權,請為您的 Tomcat 使用者授予適當的角色,或建立具有正確角色的新使用者。例如,開啟 ${CATALINA_BASE}/conf/tomcat-users.xml 並輸入以下內容:

<user username="test" password="chang3m3N#w" roles="admin-script"/>

無需進行進一步的設定。現在,當您訪問 {伺服器}:{埠}/host-manager/text/${COMMAND} 時,您可以使用建立的憑據登入。例如:

$ curl -u ${USERNAME}:${PASSWORD} http://localhost:8080/host-manager/text/list

命令列表

支援以下命令:

  • list
  • add
  • remove
  • start
  • stop
  • persist

在以下子節中,假設使用者名稱和密碼為 test:test。對於您的環境,請使用前面部分建立的憑據。

List 命令

使用 list 命令檢視您的 Tomcat 例項上可用的虛擬主機。

示例命令:

curl -u test:test http://localhost:8080/host-manager/text/list

示例響應:

OK - Listed hosts
localhost:

Add 命令

使用 add 命令新增新的虛擬主機。用於 add 命令的引數:

  • String name: 虛擬主機的名稱。必填
  • String aliases: 虛擬主機的別名。
  • String appBase: 將由此虛擬主機提供服務的應用程式的基本路徑。提供相對或絕對路徑。
  • Boolean manager: 如果為 true,則將 Manager 應用程式新增到虛擬主機。您可以透過 /manager 上下文訪問它。
  • Boolean autoDeploy: 如果為 true,則 Tomcat 會自動重新部署放置在 appBase 目錄中的應用程式。
  • Boolean deployOnStartup: 如果為 true,則 Tomcat 會在啟動時自動部署放置在 appBase 目錄中的應用程式。
  • Boolean deployXML: 如果為 true,則會讀取並使用 /META-INF/context.xml 檔案。
  • Boolean copyXML: 如果為 true,則 Tomcat 會複製 /META-INF/context.xml 檔案,並使用原始副本,而不管應用程式的 /META-INF/context.xml 檔案的更新。

示例命令:

curl -u test:test "http://localhost:8080/host-manager/text/add?name=www.awesomeserver.com&aliases=awesomeserver.com&appBase=/mnt/appDir&deployOnStartup=true"

示例響應:

add: Adding host [www.awesomeserver.com]

Remove 命令

使用 remove 命令刪除虛擬主機。用於 remove 命令的引數:

  • String name: 要刪除的虛擬主機的名稱。必填

示例命令:

curl -u test:test http://localhost:8080/host-manager/text/remove?name=www.awesomeserver.com

示例響應:

remove: Removing host [www.awesomeserver.com]

Start 命令

使用 start 命令啟動虛擬主機。用於 start 命令的引數:

  • String name: 要啟動的虛擬主機的名稱。必填

示例命令:

curl -u test:test http://localhost:8080/host-manager/text/start?name=www.awesomeserver.com

示例響應:

OK - Host www.awesomeserver.com started

Stop 命令

使用 stop 命令停止虛擬主機。用於 stop 命令的引數:

  • String name: 要停止的虛擬主機的名稱。必填

示例命令:

curl -u test:test http://localhost:8080/host-manager/text/stop?name=www.awesomeserver.com

示例響應:

OK - Host www.awesomeserver.com stopped

Persist 命令

使用 persist 命令將虛擬主機持久化到 server.xml 中。用於 persist 命令的引數:

  • String name: 要持久化的虛擬主機的名稱。必填

此功能預設情況下處於禁用狀態。要啟用此選項,您必須首先配置 Store

ConfigLifecycleListener 監聽器。要執行此操作,請將以下監聽器新增到您的 server.xml 中:

<Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>

示例命令:

curl -u test:test http://localhost:8080/host-manager/text/persist?name=www.awesomeserver.com

示例響應:

OK - Configuration persisted

示例手動條目:

<Host appBase="www.awesomeserver.com" name="www.awesomeserver.com" deployXML="false" unpackWARs="false">
</Host>

參考資料

https://tomcat.apache.org/tomcat-11.0-doc/host-manager-howto.html

相關文章