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:文本接口命令:
1
curl -u appadmin:app123 -T myapp.war "http://localhost:8080/manager/text/deploy?path=/myapp"
卸载应用:
页面操作:找到应用,点击
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目录,减少安全风险。