zoukankan      html  css  js  c++  java
  • Tomcat项目部署(三)

    1、部署:是将一个web应用(也可以是三方war包或者是用户自有web应用)安装至Tomcat服务器的过程。

    2、部署方式:

    • 静态部署:tomcat服务器启动之前将web应用设置完成
    • 动态部署:直接操作已经部署的web应用或者使用tomcat自带manager应用管理页面远程操作

    3、Context

      谈及部署web应用,首先必须理解Context的概念,对于tomcat,Context即是一个web应用。

      Context配置:

      • $CATALINA_BASE/conf/[enginname]/[hostname]/[webappname].xml
    <?xml version='1.0' encoding='utf-8'?>
    <Context path = "test" docBase = "/Users/ouhouki/dev_tools/apache-tomcat-7.0.77/conf/Catalina/localhost/ROOT" reloadable="false" />
      • $CATALINA_BASE/conf/webapps/[webappname]/META-INF/context.xml(如果应用内不含context.xml,则tomcat加载默认配置)
      • $CATALINA_BASE/conf/server.xml(Host标签下添加Context标签)
    <Host name="localhost"  appBase="webapps"unpackWARs="true" autoDeploy="true">
        <!-- path 为应用访问路径,docBase为应用所在目录 -->
          <Context path = "/root" docBase = "/Users/ouhouki/dev_tools/apache-tomcat-7.0.77/conf/Catalina/ROOT" reloadable="true" />
           <!-- SingleSignOn valve, share authentication between web applications
                Documentation at: /docs/config/valve.html -->
           <!--
            <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
           -->
           <!-- Access log processes all example.
                Documentation at: /docs/config/valve.html
                Note: The pattern used is equivalent to using pattern="common" -->
         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                   prefix="localhost_access_log." suffix=".txt"
                    pattern="%h %l %u %t &quot;%r&quot; %s %b" />
     </Host>

    4、启动时部署(静态部署)

      tomcat启动前将web应用(或者war包)拷贝至Host标签属性[appBase]配置所在目录(默认配置$CATALINA_BASE/webapps目录),当且仅当Host属性[deployOnStartup]为true时完成启动部署

      tomcat启动时加载应用顺序:

      • 所有Context标签声明应用
      • 没有被Context标签关联声明的应用(已有关联war包的应用不会根据war包的更新而更新也不会被删除,而是保持初始) 
      • 所有war包应用   

    5、启动中部署(动态部署)

      已启动的tomcat中同样可以部署应用,当Host标签属性[autoDeploy]为true时,虚拟机(host)会尝试动态部署更新web应用,即可完成如下操作:

      • 拷贝至[appBase]的war包动态部署
      • 拷贝至[appBase]的应用(exploded web)动态部署
      • 重新部署已有的  war包,原有应用(exploded web)被删除,重新解压新提供war包(Host标签属性[unpackWARs=true])  
      • 当/WEB-INF/web.xml(web.xml中任何[WatchedResource]标签中文件)文件被修改,重新加载web应用 
      • 已部署应用Context配置被修改,那么该web应用将重新部署
      • 依赖全局Context配置或者Host标签中Context配置修改,则对应应用重新部署
      • 当前新的Context配置被添加至$CATALINA_BASE/conf/[enginname]/[hostname]/目录,重新部署应用
      • 当一个web应用的[docBase]被删除时,解除部署

    6、通过管理页面部署:略   

  • 相关阅读:
    解决Docker时区与主机时区不一致的问题
    删除k8s中一直处于Terminating的资源
    多块盘制作成一个lvm
    Docker mysql启动自动按顺序导入sql
    linux中nfs启动报rpcbind.socket failed to listen on sockets: Address family not supported by protocol
    k8s容器挂载配置文件
    ssh到远程执行命令并返回
    安全组
    Python 字符串操作函数二
    Python 字符串操作函数一
  • 原文地址:https://www.cnblogs.com/ouhouki/p/14394630.html
Copyright © 2011-2022 走看看