0%

tomcat管理

Tomcat 管理功能详解:host-manager 与 manager

Tomcat 提供了两套内置的管理工具 ——host-managermanager,分别用于管理虚拟主机和 Web 应用。这些工具通过网页界面或脚本方式操作,简化了 Tomcat 的日常运维工作。本文将详细介绍这两个工具的配置与使用。

访问控制配置:tomcat-users.xml

host-managermanager 均需通过角色权限控制访问,配置文件为 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
2
3
4
5
<!-- 配置管理虚拟主机的用户(host-manager) -->
<user username="hostadmin" password="host123" roles="admin-gui,admin-script"/>

<!-- 配置管理Web应用的用户(manager) -->
<user username="appadmin" password="app123" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
  • 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 角色)。

主要功能

  1. 查看虚拟主机列表
    页面会显示当前所有虚拟主机的名称、应用基础目录(appBase)、状态(运行 / 停止)等信息。

  2. 添加虚拟主机
    在页面底部的表单中输入:

    • Name:虚拟主机名(如 www.test.com)。
    • Alias:域名别名(可选,如 test.com)。
    • App Base:应用存放目录(如 webapps/test)。
    • 勾选 Auto Deploy:允许自动部署应用。
      提交后,Tomcat 会动态创建 <Host> 节点,无需重启服务器。
  3. 停止 / 启动虚拟主机
    对已存在的虚拟主机,可点击 StopStart 按钮控制其状态。

  4. 文本接口操作
    通过 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">&quot;http://localhost:8080/manager/text/deploy?path=/myapp&quot;</span></span><br></pre></td></tr></table></figure>:hexoPostRenderEscape-->
  • 卸载应用

    • 页面操作:找到应用,点击 Undeploy

    • 文本接口命令:

      1
      curl -u appadmin:app123 "http://localhost:8080/manager/text/undeploy?path=/myapp"
2. 应用状态管理
  • 启动 / 停止 / 重启:

    • 页面操作:对应用点击 StartStopReload(重启)。

    • 文本接口命令:

      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 等)。

安全注意事项

  1. 限制访问来源
    默认情况下,host-managermanager 仅允许本地(127.0.0.1)访问。如需远程访问,需修改 webapps/host-manager/META-INF/context.xmlwebapps/manager/META-INF/context.xml,注释或调整 Valve 配置:

    1
    2
    <!-- 允许所有IP访问(生产环境不建议) -->
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />

    建议仅允许特定 IP 段(如公司内网)访问。

  2. 使用强密码
    管理用户的密码需复杂且定期更换,避免使用示例中的简单密码(如 tomcat)。

  3. 生产环境谨慎启用
    若无需管理工具,可删除 webapps/host-managerwebapps/manager 目录,减少安全风险。

欢迎关注我的其它发布渠道

表情 | 预览
快来做第一个评论的人吧~
Powered By Valine
v1.3.10