zoukankan      html  css  js  c++  java
  • tomcat web页面管理应用配置

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

    tomcat有提供web页面管理应用的功能。

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

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

    图1

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

    图2

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

    图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。解决方法见我的另一篇博文:http://www.cnblogs.com/ianduin/p/7113253.html

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

    图4

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

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

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

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

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

    但是在实际的项目过程中我们会发现war包的大小往往达到几十上百M,这时发布会出现失败,原因是tomcat默认最大只允许上传50M的文件,这时候我们需要去修改webappsmanagerWEB-INFweb.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>

     

  • 相关阅读:
    【网络流24题】魔术球问题(最小不相交路径覆盖)
    【网络流24题】搭配飞行员(太空飞行计划问题)(最大闭合图)
    【网络流24题】搭配飞行员(飞行员配对方案问题)(网络流)
    bzoj 1664 (贪心)
    关于正方形类问题
    就代码格式化问题
    提高组2017游记
    线程同步
    线程的优先级
    线程的常用方法
  • 原文地址:https://www.cnblogs.com/ianduin/p/7231212.html
Copyright © 2011-2022 走看看