Tomcat的默认工具manager配置,在很多的生产环境中由于基本用不到、或者是不太需要使用Tomcat默认的manager管理页面时一般都会把Tomcat的默认webapp下的内容给删除了,但是如果需要使用Tomcat默认的manager来管理项目时就需要保留相应的文件目录。在Tomcat中的webapps中有如下目录:docs(Tomcat本地说明文档)、examples(Tomcat相关的deamon示例)、host-manager(主机头管理工具)、manager(项目管理工具)、ROOT(Tomcat默认页),其中需要保留的是host-manager、manager、ROOT这3个目录而从Tomcat 6开始为了安全缺省条件下Tomcat的host-manager、manager是不能访问的(http 401拒绝),如需访问需要分配相关的角色权限,在这里就简单的说一说

Tomcat.png

   首先,需要配置的配置文件是${catalina.home}/conf/tomcat-users.xml先给Tomcat访问相关的功能分配角色和配置登录验证用户密码:

1
2
3
4
5
6
7
8
9
10
…略…
-->
   < role  rolename = "manager-gui" />
   < role  rolename = "manager-script" />
   < role  rolename = "manager-jmx" />
   < role  rolename = "manager-status" />
   < role  rolename = "admin-gui" />
   < role  rolename = "admin-script" />
   < user  username = "tomcat"  password = "tomcat"  roles = "manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script" />
</ tomcat-users >

此处可以配置多个角色,不同版本Tomcat所拥有的角色都不同,在生产环境中建议修改复杂度高的Tomcat用户密码,另外不需要分配所有角色权限,经需要够用的即可,如果不能访问会用相应的提示,在配置好后此时再打开Tomcat的首页还是无法进入Tomcat的管理页面的

403.png

因为从Tomcat 7开始安全机制下默认仅允许本机访问Tomcat,如需远程访问Tomcat的管理页面还需要配置相应的ip允许规则,配置manager的contest.xml可以在${catalina.home}/conf/Catalina/localhost目录下配置2个contest.xml文件,也可以写成一个,但是建议写成2个便于日常的权限管理,如下:

manager.xml:

1
2
3
4
< Context  privileged = "true"  antiResourceLocking = "false"
          docBase = "${catalina.home}/webapps/manager" >
     < Valve  className = "org.apache.catalina.valves.RemoteAddrValve"  allow = "^192.168.*$"  />
</ Context >

host-manager.xml:

1
2
3
4
< Context  privileged = "true"  antiResourceLocking = "false"
          docBase = "${catalina.home}/webapps/host-manager" >
     < Valve  className = "org.apache.catalina.valves.RemoteAddrValve"  allow = "^192.168.*$"  />
</ Context >

其中allow中是填ip可以使用正则表达式匹配,在内网中建议写成匹配某某网段可以访问的形式,如此Tomcat的manager页面访问配置就完成了

注:上面是转载的,我自己试的时候发现设置总是不成功,最后是修改webapps/manager/META-INF/context.xml才生效

如果要使用jenkins部署,参考下面文章

jenkins+svn+maven+tomcat一键构建部署

tomcat8配置差不多



Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐