web server apache tomcat11-06-Host Manager App

前言

整理这个官方翻译的系列,原因是网上大部分的 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](#虚拟主机 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 并输入以下内容:

xml 复制代码
<user username="test" password="chang3m3N#w" roles="admin-script"/>

无需进行进一步的设置。现在,当您访问 {服务器}:{端口}/host-manager/text/${COMMAND} 时,您可以使用创建的凭据登录。例如:

bash 复制代码
$ curl -u ${USERNAME}:${PASSWORD} http://localhost:8080/host-manager/text/list

命令列表

支持以下命令:

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

在以下子节中,假设用户名和密码为 test:test。对于您的环境,请使用前面部分创建的凭据。

List 命令

使用 list 命令查看您的 Tomcat 实例上可用的虚拟主机。

示例命令:

bash 复制代码
curl -u test:test http://localhost:8080/host-manager/text/list

示例响应:

makefile 复制代码
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 文件的更新。

示例命令:

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

示例响应:

csharp 复制代码
add: Adding host [www.awesomeserver.com]

Remove 命令

使用 remove 命令删除虚拟主机。用于 remove 命令的参数:

  • String name: 要删除的虚拟主机的名称。必填

示例命令:

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

示例响应:

arduino 复制代码
remove: Removing host [www.awesomeserver.com]

Start 命令

使用 start 命令启动虚拟主机。用于 start 命令的参数:

  • String name: 要启动的虚拟主机的名称。必填

示例命令:

bash 复制代码
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: 要停止的虚拟主机的名称。必填

示例命令:

bash 复制代码
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 中:

xml 复制代码
<Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>

示例命令:

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

示例响应:

复制代码
OK - Configuration persisted

示例手动条目:

xml 复制代码
<Host appBase="www.awesomeserver.com" name="www.awesomeserver.com" deployXML="false" unpackWARs="false">
</Host>

参考资料

tomcat.apache.org/tomcat-11.0...

相关推荐
apcipot_rain3 分钟前
C++转Java日记(02)
java·开发语言·c++
nice_lcj52012 分钟前
【从零理解 Spring AI · 03】Spring AI 在 Spring 生态里的位置
java·spring boot·大模型·spring ai·ai应用开发
码农小河6610 小时前
基于SSM+JSP的高校专业信息管理系统【附源码+数据库】
java·开发语言·数据库
风若飞12 小时前
Spring Ai 入门遇到问题1
java·后端·spring
Nuanyt13 小时前
LeetCode Hot 100 链表专题(五)· 2 题(Java)
java·算法·leetcode·链表
黑马程序员毕设13 小时前
基于 Java 的餐饮点餐系统设计与应用报告
java·开发语言
SL_staff13 小时前
从文档工具到知识中枢:基于JVS数字底座构建企业级统一内容管理平台的技术实践
java·开源·全栈
SL_staff14 小时前
从‘连得上’到‘管得好’:JVS-IOT双引擎驱动设备运维闭环
java·物联网·产品
w_zero_one16 小时前
递归算法(一)
java·开发语言·算法
SL_staff16 小时前
私有化低代码不是减配版开发:JVS双模式建模如何重建IT交付信任
java·低代码·spring cloud