Tomcat(四):tomcat图形管理和身份认证

2018-02-03 19:47:12来源:cnblogs.com作者:骏马金龙人点击

分享

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 inCATALINA_HOME/webapps/manager and loaded into CATALINA_BASE by usingthe 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
转载请注明出处:http://www.cnblogs.com/f-ck-need-u/p/8409723.html

注:若您觉得这篇文章还不错请点击右下角推荐,您的支持能激发作者更大的写作热情,非常感谢!

相关文章

    无相关信息

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台