简介
通过 Tomcat Host Manager 应用程序,可以在 Tomcat 中创建、删除和管理虚拟主机。 本操作指南最好与以下文档一起使用:
-
Virtual Hosting How-To 了解有关虚拟主机的更多信息。
-
主机容器(Host Container),了解虚拟主机底层 xml 配置的更多信息和属性描述。
Tomcat Host Manager 应用程序是 Tomcat 安装的一部分,
默认情况下可使用以下上下文: /host-manager
。
可以通过以下方式使用主机管理器:
-
使用图形用户界面,访问地址为
{server}:{port}/host-manager/html
。 -
使用一组适合脚本编写的最小 HTTP 请求。访问该模式的网址是
{server}:{port}/host-manager/text
。
这两种方式都可以添加、删除、启动和停止虚拟主机。
使用 persist
命令可以持久保存更改。本文重点介绍文本界面。
有关图形界面的更多信息,请参阅 Host Manager App — HTML Interface。
配置管理器应用程序访问权限
下面的描述使用 $CATALINA_HOME
指代基本 Tomcat 目录。
这是安装 Tomcat 的目录,例如 C:\tomcat9
,或 /usr/share/tomcat9
。
主机管理器应用程序要求用户具有以下角色之一:
-
admin-gui
- 图形网络接口使用此角色。 -
admin-script
- 将此角色用于脚本网络接口。
要访问 Host Manager 应用程序的文本接口,
要么授予 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命令使用的参数:
-
字符串 name:虚拟主机名称。必须有
-
字符串 aliases: 虚拟主机的别名。
-
字符串 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命令使用的参数:
-
字符串 name:要删除的虚拟主机的名称。必须有
命令示例:
curl -u test:test http://localhost:8080/host-manager/text/remove?name=www.awesomeserver.com
响应示例:
remove: Removing host [www.awesomeserver.com]
启动命令
使用 start 命令启动虚拟主机。start命令使用的参数:
-
字符串 name:要启动的虚拟主机的名称。必须有
命令示例:
curl -u test:test http://localhost:8080/host-manager/text/start?name=www.awesomeserver.com
响应示例:
OK - Host www.awesomeserver.com started
停止命令
使用 stop 命令停止虚拟主机。stop 命令使用的参数:
-
字符串 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命令的参数:
-
字符串 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>