Tomcat 中文文档(二)

如何去管理Application

介绍:

在很多的生产环境中,在不关闭容器的情况下,能够部署新的WEB App 或者取消现在的app 应用程序非常具有使用场景;或者使得容器中的应用重启;

为了支持中国功能 tomcat的内置的一个web应用 mananger

  • 从 WAR 文件的上传内容部署新的 Web 应用程序。
  • 从服务器文件系统在指定的上下文路径上部署新的 Web 应用程序。
  • 列出当前部署的 Web 应用程序,以及这些 Web 应用程序当前处于活动状态的会话。
  • 重新加载现有的 Web 应用程序,以反映/WEB-INF/classes或内容的更改/WEB-INF/lib
  • 列出 OS 和 JVM 属性值。
  • 列出可用的全局 JNDI 资源,以用于准备<ResourceLink>嵌套在<Context>部署描述中的元素的部署工具。
  • 启动已停止的应用程序(从而使其再次可用)。
  • 停止现有应用程序(使其变得不可用),但不要取消部署它。
  • 取消部署已部署的 Web 应用程序并删除其文档基础目录(除非它是从文件系统部署的)

一般使用manager web 的方式是 直接访问 http://localhost:8080/manager/html

相关的配置

需要配置一个配置文件 CATALINA_BASE/conf/tomcat-users.xml 配置用户的时候需要了解一下与之对应得角色权限

  • manager-gui — 访问 HTML 界面。
  • manager-status — 仅访问“服务器状态”页面。
  • manager-script — 访问本文档中描述的工具友好的纯文本界面,以及“服务器状态”页面。
  • manager-jmx — 访问 JMX 代理接口和“服务器状态”页面。
<!--
     <role rolename="tomcat"/>
     <role rolename="role1"/>
     <user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
     <user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
     <user username="role1" password="<must-be-changed>" roles="role1"/>

   -->
   <role rolename ="manager-gui" />
   <user username="tomcat" password="tomcat"  roles="manager-gui"/>
   <user username="tomcat2" password="tomcat"  roles="manager-gui"/>

页面访问

manager-gui 配置的权限就可以 如上面的 tomcat2

浏览器命令访问

权限配置

 <role rolename ="manager-gui" />
    <role rolename ="manager-script" />
    <role rolename ="manager-jmx" />
    <user username="tomcat6" password="tomcat"  roles="manager-gui,manager-script,manager-jmx"/>

命令示例

远程部署新的应用程序存档 (WAR)
http://localhost:8080/manager/text/deploy?path=/foo

上传这个HTTP PUT请求中指定为请求数据的Web应用归档(WAR)文件,安装到appBase 我们对应的虚拟主机的目录下,然后启动,appBase从指定路径导出添加到的WAR文件的名称. 稍后可以使用该/undeploy命令取消部署该应用程序(并删除相应的 WAR 文件)

常用命令

list:列出所有当前部署的 Web 应用程序的上下文路径、当前状态(runningstopped)和活动会话数。启动 Tomcat 后的典型响应可能如下所示

reload: 重新加载现有应用程序

serverinfo: 列出有关 Tomcat 版本、操作系统和 JVM 属性的信息。

resources[?type=xxxxx]:全局可用jndi 资源

sessions?path=/examples : Web 应用程序的默认会话超时,以及当前处于其实际超时时间一分钟范围内的活动会话的数量
/examples&idle=num 显示会话统计信息(如上述/sessions 命令)并使空闲时间超过num 分钟的会话过期。要使所有会话过期,请使用&idle=0.
start?path=/examples 通知已停止的应用程序重新启动,并使其再次可用。停止和启动非常有用,例如,如果您的应用程序所需的数据库暂时不可用。通常最好停止依赖此数据库的 Web 应用程序,而不是让用户不断遇到数据库异常。
stop?path=/examples 通知现有应用程序使其自身不可用,但仍保持部署状态。应用程序停止时传入的任何请求都将看到 HTTP 错误 404,并且此应用程序将在列表应用程序命令中显示为“已停止”。
undeploy?path=/examples 取消部署现有应用程序

警告- 此命令将删除appBase此虚拟主机的目录(通常为“webapps”)中存在的任何 Web 应用程序工件。这将删除应用程序 .WAR(如果存在)、由解压形式的部署或 .WAR 扩展产生的应用程序目录以及来自$CATALINA_BASE/conf/[enginename]/[hostname]/目录的 XML 上下文定义 。如果您只是想让应用程序停止服务,则应改用该/stop命令。

通知现有应用程序正常关闭自身,并将其从 Tomcat 中删除(这也使此上下文路径可用于以后重用)。此外,如果appBase此虚拟主机的目录(通常为“webapps”)中存在文档根目录,则会删除该文档根目录。该命令与该命令在逻辑上相反 /deploy

findleaks[?statusLine=[true|false]] 查找内存泄漏。

threaddump 线程转储
vminfo 虚拟机信息

服务器状态

http://localhost:8080/manager/status
http://localhost:8080/manager/status/all

权限 :任何一个manager-xxx角色都允许访问此页面。

首先,您有服务器和 JVM 版本号、JVM 提供程序、操作系统名称和编号,后跟架构类型。

其次,有关于JVM内存使用情况的信息。

然后是有关 Tomcat AJP 和 HTTP 连接器的信息。他们都可以获得相同的信息:

  • 线程信息:最大线程数、最小和最大空闲线程数、当前线程数和当前线程忙。
  • 请求信息:最大处理时间和处理时间、请求和错误计数、接收和发送的字节数。
  • 显示阶段、时间、发送的字节数、接收的字节数、客户端、VHost 和请求的表格。表中列出了所有现有线程。以下是可能的线程阶段列表:
    • “解析并准备请求”:正在解析请求标头或正在为读取请求正文(如果已指定传输编码)进行必要的准备工作。
    • “Service”:线程正在处理请求并生成响应。此阶段在“解析和准备请求”阶段之后,并在“完成”阶段之前。在这个阶段(服务器状态页面)总是至少有一个线程。
    • “Finishing”:请求处理结束。仍在输出缓冲区中的任何剩余响应都将发送到客户端。此阶段之后是“Keep-Alive”(如果保持连接有效)或“Ready”(如果“Keep-Alive”不合适)。
    • “Keep-Alive”:线程保持对客户端的连接打开,以防客户端发送另一个请求。如果收到另一个请求,下一阶段将是“解析和准备请求”。如果在保持活动超时之前没有收到请求,连接将被关闭,下一阶段将“就绪”。
    • “Ready”:线程处于静止状态,可以使用。

如果您使用/status/all命令,将提供有关每个已部署 Web 应用程序的附加信息。

使用 JMX 代理 Servlet

简介:JMX Proxy Servlet 是一个轻量级代理,用于获取和设置 tomcat 内部结构。(或任何已通过 MBean (tomcat 的许多组件都是注册)公开的类)它的使用不是非常用户友好,但 UI 对于集成命令行脚本以监视和更改 tomcat 的内部结构非常有帮助。您可以使用代理做两件事:获取信息和设置信息。要真正了解JMX Proxy Servlet,您应该对JMX 有一个大致的了解。

大致了解

**JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架 JMX在Java编程语言中定义了应用程序以及网络管理和监控的体系结构、设计模式、应用程序接口以及服务。通常使用JMX来监控系统的运行状态或管理系统的某些方面,比如清空缓存、重新加载配置文件等 **

我的理解就是 Tomcat 的许多核心主键都是Mbean 然后我们在使用tomcat的过程中,可以通过JMX 来获取组件的各种参数,已经对参数的获取或者设置。

jmx 获取参数命令

http://webserver/manager/jmxproxy/?get=BEANNAME&att=MYATTRIBUTE&key=MYKEY

您必须提供以下参数:

  1. get: 完整的 bean 名称
  2. att: 你想要获取的属性
  3. key:(可选)CompositeData MBean 属性的键

jmx 设置参数命令

http://webserver/manager/jmxproxy/?set=BEANNAME&att=MYATTRIBUTE&val=NEWVALUE

所以你需要提供3个请求参数:

  1. set: 完整的 bean 名称
  2. att: 你想改变的属性
  3. val: 新值
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值