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页面,因为默认没有授权,需要配置用户及其对应权限才可以;
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页面
webapp管理页面
虚拟主机管理页面
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="^.*$" />