Tomcat 管理功能详解:host-manager 与 manager
Tomcat 提供了两套内置的管理工具 ——host-manager
和 manager
,分别用于管理虚拟主机和 Web 应用。这些工具通过网页界面或脚本方式操作,简化了 Tomcat 的日常运维工作。本文将详细介绍这两个工具的配置与使用。
访问控制配置:tomcat-users.xml
host-manager
和 manager
均需通过角色权限控制访问,配置文件为 conf/tomcat-users.xml
。需在该文件中定义用户及对应的角色,才能登录管理页面。
核心角色说明
工具 | 角色名称 | 权限描述 |
---|---|---|
host-manager | admin-gui |
允许访问 host-manager 的 HTML 页面。 |
admin-script |
允许通过文本接口(如 curl)操作 host-manager。 | |
manager | manager-gui |
允许访问 manager 的 HTML 页面。 |
manager-script |
允许通过文本接口操作 manager。 | |
manager-jmx |
允许通过 JMX 方式管理 Tomcat。 | |
manager-status |
仅允许查看服务器状态页面。 |
配置示例
在 tomcat-users.xml
中添加如下配置(需放在 <tomcat-users>
标签内):
1 | <!-- 配置管理虚拟主机的用户(host-manager) --> |
username
:登录用户名。password
:登录密码(生产环境需设置强密码)。roles
:用户拥有的角色(多个角色用逗号分隔)。
host-manager:虚拟主机管理工具
host-manager
用于管理 Tomcat 中的虚拟主机(Host
节点),支持添加、删除虚拟主机,查看主机状态等操作。
访问方式
- HTML 页面:访问
http://localhost:8080/host-manager/html
(需admin-gui
角色)。 - 文本接口:访问
http://localhost:8080/host-manager/text
(需admin-script
角色)。
主要功能
查看虚拟主机列表
页面会显示当前所有虚拟主机的名称、应用基础目录(appBase
)、状态(运行 / 停止)等信息。添加虚拟主机
在页面底部的表单中输入:Name
:虚拟主机名(如www.test.com
)。Alias
:域名别名(可选,如test.com
)。App Base
:应用存放目录(如webapps/test
)。- 勾选
Auto Deploy
:允许自动部署应用。
提交后,Tomcat 会动态创建<Host>
节点,无需重启服务器。
停止 / 启动虚拟主机
对已存在的虚拟主机,可点击Stop
或Start
按钮控制其状态。文本接口操作
通过curl
等工具发送命令(需认证):1
2
3
4
5# 查看主机列表
curl -u hostadmin:host123 http://localhost:8080/host-manager/text/list
# 添加虚拟主机
curl -u hostadmin:host123 "http://localhost:8080/host-manager/text/add?name=www.test.com&alias=test.com&appBase=webapps/test"
manager:Web 应用管理工具
manager
是 Tomcat 最常用的管理工具,用于部署、卸载、重启 Web 应用,查看服务器状态等。
访问方式
- HTML 页面:访问
http://localhost:8080/manager/html
(需manager-gui
角色)。 - 文本接口:访问
http://localhost:8080/manager/text
(需manager-script
角色)。 - 状态页面:访问
http://localhost:8080/manager/status
(需manager-status
角色)。
主要功能
1. 应用部署与卸载
部署 WAR 包:
方式 1:通过页面上传 WAR 文件(支持本地文件或 URL)。
方式 2:将 WAR 包放在虚拟主机的
appBase
目录(如webapps
),页面点击Deploy
。方式 3:文本接口命令:
<!--hexoPostRenderEscape:<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">curl -u appadmin:app123 -T myapp.war <span class="string">"http://localhost:8080/manager/text/deploy?path=/myapp"</span></span><br></pre></td></tr></table></figure>:hexoPostRenderEscape-->
卸载应用:
页面操作:找到应用,点击
Undeploy
。文本接口命令:
1
curl -u appadmin:app123 "http://localhost:8080/manager/text/undeploy?path=/myapp"
2. 应用状态管理
启动 / 停止 / 重启:
页面操作:对应用点击
Start
、Stop
或Reload
(重启)。文本接口命令:
1
2# 重启应用
curl -u appadmin:app123 "http://localhost:8080/manager/text/reload?path=/myapp"
3. 服务器状态查看
- 状态页面:显示 JVM 内存使用、线程池状态、连接器信息(请求数、错误数等)。
- JMX 接口:通过
manager-jmx
角色,可使用 JConsole 等工具连接 Tomcat 的 MBean 服务器,监控和管理底层资源。
4. 应用列表与信息
页面会显示所有部署的 Web 应用,包括:
- 应用路径(
Path
)、状态(State
)。 - 部署路径(
Location
)、会话数(Sessions
)。 - 资源使用情况(内存、CPU 等)。
安全注意事项
限制访问来源
默认情况下,host-manager
和manager
仅允许本地(127.0.0.1
)访问。如需远程访问,需修改webapps/host-manager/META-INF/context.xml
和webapps/manager/META-INF/context.xml
,注释或调整Valve
配置:1
2<!-- 允许所有IP访问(生产环境不建议) -->
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />建议仅允许特定 IP 段(如公司内网)访问。
使用强密码
管理用户的密码需复杂且定期更换,避免使用示例中的简单密码(如tomcat
)。生产环境谨慎启用
若无需管理工具,可删除webapps/host-manager
和webapps/manager
目录,减少安全风险。
v1.3.10