tomcat 和大多数服务程序的管理不一样, tomcat 更适合使用图形管理界面进行管理, 例如在不停止 tomcat 的情况下动态部署新的 webapp 或重新加载 webapp. 如果不使用图形管理工具, tomcat 虽然也可以配置自动部署 (autoDeploy="true"), 但我们却无法掌握它重新部署的时刻.
图形管理工具的官方手册:
Manager App HOW-TO
.
直接在浏览器中输入 tomcat 所在机器的 ip 地址及其 connector 监听端口, 即可进入 tomcat 的图形管理界面, 也是欢迎界面. 这个欢迎页面是 tomcat engine 中的默认 Host 组件 localhost 提供的页面, 该资源的路径为 $catalina_home/webapps/ROOT/index.jsp.
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
这 3 个按钮对应的是 tomcat 默认就安装好的 3 个管理工具: 状态查看工具, webapp 管理工具 (非常重要) 和虚拟主机管理工具. 其中前 2 个工具都由名为 manager 的 webapp 提供, 第三个工具由名为 host-manager 的 webapp 提供, 因此后文将认为只提供了两个管理程序: manager 和 host-manager. 它们的路径都在 webapps 目录下.
[root@xuexi tomcat]# ls webapps/
docs examples host-manager manager ROOT
点击这 3 个按钮, 分别可以进入对应的管理界面. 但第一次点击, 会出现 "403 Access denied" 错误, 并提示要去配置 conf/tomcat-users.xml, 添加相应权限的角色.
对于这两个管理程序而言, 总共有以下几种预定义角色: 其中后两项角色是上一图中 "Host Manager" 需要的角色.
manager-gui - allows access to the html GUI and the status pages
manager-script - allows access to the text interface and the status pages
manager-jmx - allows access to the JMX proxy and the status pages
manager-status - allows access to the status pages only
admin-gui - allows access to the HTML GUI
admin-script - allows access to the text interface
对于使用 manager-gui 角色的用户, 强烈建议不要再为其赋予 manager-script 和 manager-jmx 角色.
这些角色名称 rolename 已经预定义在各管理程序内的 web.xml 中:
[root@xuexi tomcat]# grep 'role-name' webapps/manager/WEB-INF/web.xml
<role-name>manager-gui</role-name>
<role-name>manager-script</role-name>
<role-name>manager-jmx</role-name>
<role-name>manager-gui</role-name>
<role-name>manager-script</role-name>
<role-name>manager-jmx</role-name>
<role-name>manager-status</role-name>
<role-name>manager-gui</role-name>
<role-name>manager-script</role-name>
<role-name>manager-jmx</role-name>
<role-name>manager-status</role-name>
[root@xuexi tomcat]# grep 'role-name' webapps/host-manager/WEB-INF/web.xml
<role-name>admin-script</role-name>
<role-name>admin-gui</role-name>
<role-name>admin-gui</role-name>
<role-name>admin-script</role-name>
因此, 在各管理程序的身份验证文件中可以直接引用这几个名称. 那么如何配置身份验证, 使得只有通过验证的用户才能使用这些管理工具? 根据前面的错误页面提示, 只需在 $catalina_home/conf/tomcat-user.xml 中配置即可.
例如, 使用预定义好的角色进行配置.
<user username="malongshuai" password="123456" roles="manager-gui,admin-gui"/>
再重启 tomcat 即可. 但是, 这样的配置在 tomcat 7 版本能成功, 在 tomcat8 上不会成功. 查看 catalina.home 下的. RUNING 文件, 提示如下内容:
For example, the standard manager web application can be kept in
CATALINA_HOME/webapps/manager and loaded into CATALINA_BASE by using
the following trick:
* Copy the CATALINA_HOME/webapps/manager/META-INF/context.xml
file as CATALINA_BASE/conf/Catalina/localhost/manager.xml
* Add docBase attribute as shown below.
The file will look like the following:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="${catalina.home}/webapps/manager"
antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.0\.0\.1" />
</Context>
它要求我们将 CATALINA_HOME/webapps/manager/META-INF/context.xml 复制到 CATALINA_BASE/conf/Catalina/localhost/manager.xml, 并修改其内容. 既然知道了操作过程, 所以在 tomcat 8 中也就不用去复制了, 这里直接创建文件并向里面写入内容即可, 注意文件名一定不能错误.
[root@xuexi tomcat]# mkdir -p conf/Catalina/localhost
[root@xuexi tomcat]# cat conf/Catalina/localhost/manager.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="${catalina.home}/webapps/manager"
antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="^.*$" />
</Context>
此处 allow 定义的是允许所有主机访问此管理状态页面. 还可以使用
allow="127\.0\.0\.1"
定义只有本机才能访问,
allow="192\.168\.100.*"
定义只有 192.168.100 网段的主机才能访问.
定义了 manager.xml 文件后, 也仅能访问前两个页面, 因为前两个页面是 manager 程序提供的, 访问时需要在 uri 中使用 / manager, 或直接点击上面的按钮. 以下是管理 webapp 的图形管理工具页面, 从图中可以看出, 可以轻松管理某个 webapp 的启动, 停止, 部署, 重新部署, 部署本地项目等.
第三个页面是管理虚拟主机的图形页面, 访问时的 uri 部分是 / host-manager. 但要使用它, 也需要将 context.xml 复制到特定路径下, 并修改一点内容. 如下:
[root@xuexi tomcat]# cp conf/Catalina/localhost/manager.xml conf/Catalina/localhost/host-manager.xml
[root@xuexi tomcat]# sed -i s/manager/host-manager/ conf/Catalina/localhost/host-manager.xml
下图是虚拟主机的管理页面.
以上是将文件 manager.xml 或 host-manager.xml 复制到 CATALINA_BASE/conf/Catalina/localhost / 下, 这是管理所有虚拟主机, 如果想要单独管理某虚拟主机, 则可以将文件按照
$CATALINA_BASE/conf/[enginename]/[hostname]
路径进行复制.
回到 Linux 系列文章大纲: http://www.cnblogs.com/f-ck-need-u/p/7048359.html 回到网站架构系列文章大纲: http://www.cnblogs.com/f-ck-need-u/p/7576137.html 回到数据库系列文章大纲: http://www.cnblogs.com/f-ck-need-u/p/7586194.html
来源: https://www.cnblogs.com/f-ck-need-u/p/8409723.html