主机管理器应用 -- 文本界面
目录
引言
Tomcat 主机管理器应用程序使您能够在 Tomcat 中创建、删除和管理虚拟主机。本操作指南最好配合以下文档阅读:
Tomcat 主机管理器应用程序是 Tomcat 安装的一部分,默认情况下可通过以下上下文使用:/host-manager
。您可以通过以下方式使用主机管理器:
- 使用图形用户界面,可在以下地址访问:
{server}:{port}/host-manager/html
。 - 使用一套适用于脚本的最小 HTTP 请求。您可以在以下地址访问此模式:
{server}:{port}/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"/>
无需进一步设置。当您现在访问{server}:{port}/host-manager/text/${COMMAND}
时,您可以使用创建的凭据登录。例如:
$ curl -u ${USERNAME}:${PASSWORD} http://localhost:8080/host-manager/text/list
OK - Listed hosts
localhost:
如果您使用不同的领域,您需要使用该领域的标准用户管理工具将必要的角色添加到相应的用户。
命令列表
支持以下命令:
- list (列出)
- add (添加)
- remove (移除)
- start (启动)
- stop (停止)
- persist (持久化)
在以下小节中,假定用户名为test:test。对于您的环境,请使用前几节中创建的凭据。
列表命令
使用list命令查看 Tomcat 实例上可用的虚拟主机。
示例命令:
curl -u test:test http://localhost:8080/host-manager/text/list
示例响应:
OK - Listed hosts
localhost:
添加命令
使用add命令添加新的虚拟主机。add命令使用的参数:
- String name: 虚拟主机的名称。必填
- String aliases: 虚拟主机的别名。
- String appBase: 此虚拟主机将提供服务的应用程序的基础路径。提供相对或绝对路径。
- Boolean manager: 如果为 true,管理器应用将添加到虚拟主机。您可以通过/manager上下文访问它。
- Boolean autoDeploy: 如果为 true,Tomcat 将自动重新部署放置在 appBase 目录中的应用程序。
- Boolean deployOnStartup: 如果为 true,Tomcat 将在启动时自动部署放置在 appBase 目录中的应用程序。
- Boolean deployXML: 如果为 true,Tomcat 将读取并使用/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命令使用的参数:
- 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命令使用的参数:
- 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命令使用的参数:
- String name: 要停止的虚拟主机的名称。必填
示例命令:
curl -u test:test http://localhost:8080/host-manager/text/stop?name=www.awesomeserver.com
示例响应:
OK - Host www.awesomeserver.com stopped
持久化命令
使用persist命令将虚拟主机持久化到server.xml。persist命令使用的参数:
- String name: 要持久化的虚拟主机的名称。必填
此功能默认禁用。要启用此选项,您必须首先配置StoreConfigLifecycleListener
监听器。为此,请将以下监听器添加到您的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>