Tomcat配置外网管理 | Tomcat8通过网页远程IP登录管理页面 | (配置Host-Manager和Manager远程部署)
·
Tomcat8通过网页远程IP登录管理页面
(配置Host-Manager和Manager远程部署)
操作系统: Windows 2008R2 / (Linux)
Tomcat版本:Tomcat8.5.27
JAVA版本:openjdk1.8.0_131
默认情况下,我们安装tomcat8.5之后,访问tomcat主页面,出现如下图所示界面:
当我们需要访问Server Status、Manager App或者Host Manager时,出现如下所示的错误:
401表示未授权,因为tomcat默认是不允许访问这几个页面的。根据提示,我们需要在tomcat安装目录下的conf/tomcat-users.xml配置文件中增加用户和用户角色。
查询多方面资料后,发现这是Tomcat8.5之后的版本,已经不再支持直接远程登录,需要修改配置文件。
修改配置文件的方法:
一、 修改tomcat-users.xml文件,增加管理员账号和密码
在 【Tomcat8安装目录】\WebApps\conf\tomcat-users.xml 文件中,倒数第二行中添加以下内容。
( Linux系统可能是在/usr/local/tomcat/conf/tomcat-users.xml 文件)
<role rolename="admin-gui"/> <role rolename="manager-gui"/> <user username="tomcat" password="123456" roles="manager-gui,admin-gui"/>
再次使用浏览器访问:
这次出现的是403连接拒绝。默认情况下,只能通过与Tomcat安装在同一台计算机上运行的浏览器访问Manager。根据提示信息,需要修改manager的status.xml文件,该文件在/usr/local/tomcat/webapps/manager/META-INF目录下。
二、 修改context.xml文件,破除非本机IP访问管理页面的限制(管理IP:由127.0.0.1改为所有IP),
在 【Tomcat8安装目录】\WebApps\host-manager\META-INF\context.xml 文件中 和 【Tomcat8安装目录】\WebApps\manager\META-INF\context.xml文件中 ,修改代码 <Context antiResourceLocking 下的配置:
( Linux系统的访问限制文件可能是在/usr/local/tomcat/webapps/host-manager/META-INF/context.xml 和 /usr/local/tomcat/webapps/manager/META-INF/context.xml )
需要修改的位置 (allow后面的值):
修改内容:
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="^.*$" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>
allow="^.*$" /> //解释就是,允许所有的IP地址来管理。 之前默认是只允许127.0.0.1 本机管理。
直接将这一段注释也可以
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
<allow="^.*$" /> -->
最后,请重启Tomcat服务(或tomcat下bin目录下的startup.bat);
关闭浏览器,再次打开浏览器访问, 点击Tomcat管理按钮,提示输入Tomcat管理账号密码后即可正常使用。
教程 完毕。
补充知识:
在开发中让Tomcat不需要重启就能加载最新的配置:
为了在开发时,让tomcat能够自动重新加载我们修改过的代码和配置,需要对Tomcat的context.xml文件进行设置。
在<context>标签中,加上reloadable属性,并且将值设为true
<Context reloadable="true"> <!--注意: reloadable设为true,目的是为了方便开发阶段, 它会影响tomcat性能;当在正式部署时,需要改成false -->
·