阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Tomcat Web页面管理应用配置与报403解决方法

150次阅读
没有评论

共计 3013 个字符,预计需要花费 8 分钟才能阅读完成。

大部分时候,我们的 Tomcat 服务器都不是部署在本机,那么怎么样不通过 ftp/sftp 方式来将 war 包部署到 Tomcat 容器呢?

Tomcat 有提供 Web 页面管理应用的功能。

我们来看看怎么配置实现该功能。

进入 tomcat 默认页面时有“server status”、“manager app”、“Host manager”三个选项如图:

Tomcat Web 页面管理应用配置与报 403 解决方法

图 1

默认情况下,点击会跳转到 401 Unauthorized 报错页面

Tomcat Web 页面管理应用配置与报 403 解决方法

图 2

错误信息有提示请检查 conf/tomcat-users.xml 文件是否已配置。并且给出了配置示例(这里提醒大家,在任何时候出现错误页面,务必先仔细阅读错误信息,很多时候直接在错误信息中就能找到解决方案)

Tomcat Web 页面管理应用配置与报 403 解决方法

图 3

现在我们来配置 manager app 权限

进入 tomcat 下的 conf 目录,打开 tomcat-users.xml 文件

找到文件在末尾,在 </tomcat-users> 上一行插入如下配置:

  <role rolename=”manager-gui”/>
  <user username=”admin” password=”admin1234″ roles=”manager-gui”/>

保存文件,退出。重启 tomcat 该配置即可生效(“server status”、“Host manager”配置类似,参照报错页面的提示信息进行配置即可)

重新访问 tomcat 地址,点击“manager app”,如果使用的是 tomcat7 以下(含 7),这时会弹出一个登录框,输入前面配置的用户名密码即可登录,管理 app。包括 war 包服务的启动、停止、reload、undeploy 以及配置 session 的失效时间。

如果使用的是 tomcat8 以上,此时会报 403 permission deny。

Tomcat8 配置管理员后仍然报 403 解决方法:

修改 conf/tomcat-users.xml

<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="admin"/>
<user username="user" password="password"  roles="admin,manager,manager-gui"/>

同时还需要修改,如无新建 conf/Catalina/localhost/manager.xml 内容如下:

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

无须重启 tomcat 即可生效。

正常可访问时的页面如下图:

Tomcat Web 页面管理应用配置与报 403 解决方法

图 4

 

接下来我们来看下怎么发布。

进入到 manager app 页面后,往下滑动页面到 Deploy 栏,如图:

Tomcat Web 页面管理应用配置与报 403 解决方法

点击“select WAR file to upload”后面的“浏览”按钮,选择需要发布的 war 包后,点击“deploy”,war 即可发布成功。部署是否成功,需要关注头部的“Message:”内容。

但是如果该 war 包已经在服务器上部署,则需要在页面中找到该应用,点击“undeploy”先取消部署。

通过以上配置后,基本上在发布版本的时候不会有什么问题,增加这个配置的好处就是当持续集成的服务器与 tomcat 不在同一服务器时,可以通过配置,实现自动部署(当然方案不是唯一,也可以通过 ftp、ssh 方式部署,当时个人认为这是最简单的方式)

但是在实际的项目过程中我们会发现 war 包的大小往往达到几十上百 M,这时发布会出现失败,原因是 tomcat 默认最大只允许上传 50M 的文件,这时候我们需要去修改 webapps\manager\WEB-INF\web.xml 文件

找到

<multipart-config>
      <!– 50MB max –>
      <max-file-size>52428800</max-file-size>
      <max-request-size>52428800</max-request-size>
      <file-size-threshold>0</file-size-threshold>
    </multipart-config>

一段(大概在 53 行),将 max-file-size、max-request-size 值增大即可。

注意:

如果 tomcat 需要开放到公网环境,建议将 webapps 目录删除

或者增加 ip 白名单过滤

配置可以参照 tomcat 官方文档进行配置 http://tomcat.apache.org/tomcat-8.5-doc/manager-howto.html

里面有提到:

In addition to the password restrictions, access to the Manager web application can be restricted by the remote IP address or host by adding a RemoteAddrValve or RemoteHostValve. See valves documentation for details. Here is an example of restricting access to the localhost by IP address:

<Context privileged="true">
        <Valve  className="org.apache.catalina.valves.RemoteAddrValve"
                 allow="127\.0\.0\.1"/>
</Context>

更多 Tomcat 相关教程见以下内容

CentOS 6.6 下安装配置 Tomcat 环境  https://www.linuxidc.com/Linux/2015-08/122234.htm
RedHat Linux 5.5 安装 JDK+Tomcat 并部署 Java 项目  https://www.linuxidc.com/Linux/2015-02/113528.htm
Tomcat 权威指南(第二版)(中英高清 PDF 版 + 带书签)  https://www.linuxidc.com/Linux/2015-02/113062.htm
Tomcat 安全配置与性能优化 https://www.linuxidc.com/Linux/2015-02/113060.htm
Linux 下使用 Xshell 查看 Tomcat 实时日志中文乱码解决方案 https://www.linuxidc.com/Linux/2015-01/112395.htm
CentOS 64-bit 下安装 JDK 和 Tomcat 并设置 Tomcat 开机启动操作步骤 https://www.linuxidc.com/Linux/2015-01/111485.htm
Ubuntu 16.04 下安装 Tomcat 8.5.9  https://www.linuxidc.com/Linux/2017-06/144809.htm
Tomcat 中 session 的管理机制  https://www.linuxidc.com/Linux/2016-09/135072.htm

Tomcat 的详细介绍:请点这里
Tomcat 的下载地址:请点这里

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计3013字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中