前言
整理這個官方翻譯的系列,原因是網上大部分的 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