tomcat之图形管理与身份认证

tomcat配置启用管理用webapp界面...

tomcat的管理用webapp

官方doc:

http://tomcat.apache.org/tomcat-8.5-doc/manager-howto.html

http://tomcat.apache.org/tomcat-8.5-doc/host-manager-howto.html

​ tomcat安装后,自带3个webapp用于管理,查看状态的;管理webapp的,管理host的;如下图,点击后, 默认是403页面,因为默认没有授权,需要配置用户及其对应权限才可以;

image-20200904134634994

1,默认自带的webapp如下:

[root@host2 tomcat]# ll webapps/
drwxr-x--- 16 root root 4096 Sep  2 14:56 docs # docs的webapp,本地离线访问tomcat文档
drwxr-x---  6 root root   83 Sep  2 14:56 examples # 3个示例页面
drwxr-x---  5 root root   87 Sep  2 14:56 host-manager # 管理虚拟主机的
drwxr-x---  5 root root  103 Sep  2 14:56 manager # 管理webapps和server状态的
drwxr-x---  3 root root  283 Sep  2 14:56 ROOT # 访问192.168.80.101:8080/时提供该目录下的index.jsp文件,因为默认虚拟主机localhost没有提供path=""的context

三个webapp管理页面

​ tomcat自带3个webapp分别用来管理webapp、管理虚拟主机、查看状态;详见配置过程:

host-manager

manager

status

配置过程

0,检查角色定义,

在host-manager和manager的WEB-INF目录下,都由web.xml定义了各类role-name,在tomcat-users.xml文件中定义用户时,可以直接引用这些角色;

[root@host2 webapps]# grep role-name 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>
[root@host2 webapps]# grep role-name 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>

1,修改tomcat-user.xml文件

犯错,直接习惯性放在文件最底部,没在tomcat-users这个标签内部!!!!

xml文件,注意,标签的闭合,和匹配;

manager-gui

  • status页面
  • webapp 管理页面

admin-gui

  • host-manager管理页面
[root@host2 tomcat]# vim conf/tomcat-users.xml
<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">
...

<!--
  <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"/>
-->
# 参考注释部分,添加一行如下,指定了用户名,密码,角色为manager-gui和admin-gui,分别对应status、app manager和host-manger的权限,
# 角色的定义在cat webapps/{manager|host-manager}/WEB-INF/web.xml里有定义,这里直接引用即可
# 犯错,直接习惯性放在文件最底部,没在tomcat-users这个标签内部!!!!
# 找半天没找到错误,恢复快照重做的时候,才注意到标签的问题;

  <user username="tomcat" password="wang" roles="manager-gui,admin-gui"/>
  
</tomcat-users>


[root@host2 tomcat]# catalina.sh stop;catalina.sh start
此时重启仍然无法访问

2,对需要的ip进行放行

默认只可以本机访问,因此需要用访问控制的valve进行来源ip放行

[root@host2 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>


[root@host2 tomcat]# cat conf/Catalina/localhost/host-manager.xml 
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="${catalina.home}/webapps/host-manager" 
        antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="^.*$" />
</Context>

# 路径为<prefix>/conf/engine名/虚拟主机名/webapp.xml 
# 此xml默认不存在,需创建
# 设置为所有ip可访问,生产中,自然要严格设置

3,再次重启,访问

status页面

image-20200904165358465

webapp管理页面

image-20200904165408164

虚拟主机管理页面

image-20200904165423923

4,另一种放行ip的配置

[root@host2 tomcat]# vim webapps/manager/META-INF/context.xml 
[root@host2 tomcat]# vim webapps/host-manager/META-INF/context.xml 

# 不用创建conf/Catalina/localhost/manager.xml和host-manager.xml
# 分别修改对应webapp下的META-INF/context.xml
# 将默认的允许本地,改为如下,允许所有即可
# 不需要重启,等待一会儿即可生效
...
 allow="^.*$" />

updatedupdated2020-10-192020-10-19
加载评论