tomcat 居然有 web 管理程序包

一直以来使用tomcat都是听从了网上前辈们的说法,下载源代码或者压缩包,解压使用。

就在昨天,测试ubuntu新系统的时候,使用apt安装的tomcat9的默认页面提示可以使用tomcat9-admin包,该包提供了web管理tomcat9服务器的能力。

 

 

 兴冲冲地去apt install tomcat9-admin -y了,回来点击这两个链接,查看manager的功能。然而遇到的是403错误。

 

 

 首先可以看到的是,需要配置manager的context.xml,这个文件在使用apt安装的时候位于/usr/share/tomcat9-admin/manager/META-INF/context.xml

实际上建议使用如图所示的方法查找文件:

1.进入root用户权限

2.在根目录查找

3.根据文件名查找

4.使用grep 限定其他相关字符串,比如可能的文件夹的部分名称。

不要直接使用的长的、复杂的字符串直接查找,那样容易找不到,或者因为大小写(linux区分大小写)而错过目标。使用如上的方法相当于使用find过滤了不包含文件名的路径,再使用grep过滤了不包含可能的另一个字符串的路径,两个条件结合查找,迅速缩小目标范围。其实还是因为linux不提供多个字符组合查找,而为了找个文件使用正则表达式实在是太麻烦了。

 

上图中找到了两个contextx.xml,分别是tomcat9-admin包提供的两个功能的配置文件,基本相同,可以做同样的修改。

可以看到context.xml文件内容如下:

 

 

 注意上图中最后几行的内容<Value>...</Value>的那一部分,其中的allow="..."是一个正则表达式描述的允许访问的主机的名称/IP,默认情况下只允许IPV4为127或者IPV6形式的打头的本地访问 ,可以在其后方添加上如下内容:

|192\.\d+\.\d+\.\d+

其中192到末尾替换成自己的IP段或者星号*从而允许访问。至此,不会因为主机不允许访问而被拒绝了。两个context.xml都如此修改即可。

但是,再去尝试访问还会遇到错误,错误依然是403,manager和host manager对应的错误提示页面如下:

manager的403:

 

host manager的403:

 

 

 根据提示,第一个是下盖context.xml,我们已经修改过了,那么接着往下看就是conf/tomcat-users.xml里边配置用户信息。

对于manager,配置文件里要有一个这样的角色:

<role rolename="manager-gui"/>

同时要有一个用户具备上边这个角色属性

<user username="tomcat" password="s3cret" roles="manager-gui"/>

对于host manager稍有不同,配置文件里的角色和用户的角色属性不一样:

<role rolename="admin-gui"/>
<user username="tomcat" password="s3cret" roles="admin-gui"/>

将这样的配置稍加修改(不改直接用也行),添加到配置文件里就好了。

这次的文件位置如下,依然使用索索的方式找到文件:

 

 

 由于使用的是root用户安装的tomcat9和tomcat9-admin,也是使用root用户权限运行的,那么直接在修改全局的/etc/tomcat9/tomcat-users.xml

文件的上半部分几乎全是注释,我们只需要修改最后的role和user部分就好:

 

 

 

 

 其中第3,4,5,6行是添加的内容,是admin包需要的角色和用户信息,其他的行是配置文件原本就有的角色和用户。

原本就有的角色和用户其实可以删掉,因为他们本身并没有任何作用,但是习惯保留。注意,其中的用户部分的密码必须全部修改,密码中不能包含尖括号<>等xml中不允许使用的符号,否则配置文件无效。

我使用的manager的用户名是uim,host manager的用户名是aim,我尝试把两个用户合并成一个,也就是role="manager-gui admin-gui",然而两个角色之间用空格分隔是错误的写法,应该用逗号,不过当我知道的时候已经配置成两个用户分别使用各自的角色,就不改了。

 登录manager页面,可以看到方便地使用manager地web端可以查看tomcat服务器的运行情况,包括正在运行的web应用,也可以通过vegeweb端上传新的web应用到tomcat服务器

 

 在host manager可以以host为单位管理tomcat服务器:

 

 目前我还没有使用admin包管理tomcat,不过可以猜测使用web管理应该能让我省下不少原来用于改tomcat地server.xml配置文件的功夫。

posted @ 2019-11-20 10:40  sebastia  阅读(467)  评论(0编辑  收藏  举报