标签:还需 关闭浏览器 状态 保存 interface 修改 添加 docke color
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目录下。
点击这3个按钮,分别可以进入对应的管理界面。但第一次点击,会出现"403 Access denied"错误,并提示要去配置conf/tomcat-users.xml,添加相应权限的角色。
由于ServerStatus和ManagerAPP这两个应用都是由manager应用提供,因此点击这两个按钮中的任何一个弹出的错误提示是相同的
上述错误页面翻译如下:
您无权查看此页面。如果您尚未更改任何配置文件,请检查安装中的文件conf/tomcat-users.xml。该文件必须包含允许您使用此Web应用程序的凭据。 例如,将manager-gui角色添加到用户名为tomcat,密码为s3cret的用户,将以下内容添加到上面列出的配置文件tomcat-user.xml中。 <role rolename =“manager-gui”/> <user username =“tomcat”password =“s3cret” roles =“manager-gui”/>
注意,对于Tomcat 7以上,使用管理器应用程序所需的角色已从单个manager角色更改为以下四个角色。您需要分配您希望访问的功能所需的角色。
manager-gui - 允许访问HTML GUI和状态页面 manager-script - 允许访问文本界面和状态页面 manager-jmx - 允许访问JMX代理和状态页面 manager-status - 仅允许访问状态页面
HTML接口受CSRF保护,但文本和JMX接口不受保护。为了保持CSRF保护: 具有manager-gui角色的用户不应被授予manager-script或manager-jmx角色。 如果通过浏览器访问text或jmx接口(例如,用于测试,因为这些接口用于工具而不是人类),则必须在之后关闭浏览器以终止会话。
下面是点击HostManager按钮提示的错误页面
上述错误页面翻译如下:
401未经授权 您无权查看此页面。如果您尚未更改任何配置文件,请检查安装中的文件 conf/tomcat-users.xml。该文件必须包含允许您使用此Web应用程序的凭据。 例如,将admin-gui角色添加到用户名为tomcat,且密码为s3cret的用户,请将以下内容添加到上面列出的配置文件中。 <role rolename =“admin-gui”/> <user username =“tomcat”password =“s3cret”roles =“admin-gui”/>
注意,对于Tomcat 7以上,使用主机管理器应用程序所需的角色已从单个admin角色更改为以下两个角色。您需要分配您希望访问的功能所需的角色。 admin-gui - 允许访问HTML GUI admin-script - 允许访问文本界面
HTML接口受CSRF保护,但文本接口不受保护。为了保持CSRF保护: 具有admin-gui角色的用户不应被授予 admin-script角色。 如果通过浏览器访问文本界面(例如,用于测试,因为此界面用于工具而不是人类),则必须在之后关闭浏览器以终止会话。
综上:对于这两个管理程序而言,总共有以下几种预定义角色:其中后两项角色是上一图中"Host Manager"需要的角色。
对于使用manager-gui角色的用户,强烈建议不要再为其赋予manager-script和manager-jmx角色。
这些角色名称rolename已经预定义在各管理程序内的web.xml中:
[root@docker121 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@docker121 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>
因此,在各管理程序的身份验证文件中可以直接引用这几个名称。那么如何配置身份验证,使得只有通过验证的用户才能使用这些管理工具?根据前面的错误页面提示,只需在$CATALINA_HOME/conf/tomcat-user.xml中配置即可。
例如,使用预定义好的角色进行配置。
注意上述的用户名和密码随意指定,但角色名不会能不能随意指定,必须是应用程序中web.xml文件中事先定义好的
再重启tomcat即可。但是,这样的配置在tomcat 8.0及之前的版本能成功,在tomcat 8.5及以后的版本上不会成功,还需要进行如下操作:
打开webapps/manager/META-INF/context.xml文件,不是conf/context.xml文件
我们将里面的内容注释(注意仅注释<Value />元素)或者修改为如下:
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="192\.168\.2\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
表示:允许192.168.2.0网段(我当前的局域网所在网段)及本地回环地址访问,你需要修改为你访问网段的地址或者具体的IP。
比如:你的网段是192.168.1.0,可以写成192\.168\.1\.\d+;或者允许192.168.1.100访问,写成192\.168\.1\.100
注:如果要访问host manager,还需要修改webapps/host-manager/META-INF/context.xml文件,修改内容和上面一样。
保存,然后重启tomcat,重新访问server status、manager app页面,输出上面设置的用户名和密码,即可访问页面。
第一个按钮:状态页面
第二个按钮:应用管理界面
可以轻松管理某个webapp的启动、停止、部署、重新部署、部署本地项目等。
第三个按钮:虚拟机管理界面
标签:还需 关闭浏览器 状态 保存 interface 修改 添加 docke color
原文地址:https://www.cnblogs.com/liliyang/p/9743948.html