设为首页 收藏本站
查看: 1151|回复: 0

[经验分享] Tomcat 部署详解

[复制链接]

尚未签到

发表于 2015-8-6 12:50:24 | 显示全部楼层 |阅读模式
  前篇大概讲过了tomcat的发布和部署,以及测试。
  本篇详细介绍下tomcat的部署相关的内容,本篇主要内容:
  1 介绍下部署相关的内容,需要安装的文件以及上下文描述符
  2 静态部署——在tomcat启动时部署
  3 动态部署——在运行时自动部署
  4 使用TCD完成部署,另外还可以对应用进行编译、校验、打包等功能。
  其他内容参考:tomcat官方文档翻译
介绍
  部署就是把web应用开发时的文件拷贝到tomcat容器中,并对其进行编译等操作,使用户可以访问到该应用。在tomcat中有多种部署方式:
    1 静态部署:直接拷贝相应的web展开目录、或者war包。(展开目录的意思就是tomcat可以直接访问的应用目录,是未经过压缩的。相反的就是war包,是一种经过压缩的web应用文件)。
    2 动态部署:通过tomcat管理器或者其他工具(如TCD,tomcat client deployer)执行部署。
  
  如果是使用静态部署,或者使用tomcat管理器进行部署是不需要安装任何东西的。
  但是如果要使用TCD进行部署,那么就需要预先安装JDK和Ant,因为TCD中内置的是Ant的任务构建脚本;然后再下载TCD的部署包。
  
  另外,还需要了解一个概念——上下文,Context。在tomcat中,上下文就是一个web应用。在之前的tomcat版本中,上下文信息是配置在server.xml中的,现在仍然可以,但是官方并不推荐这种做法。
  上下文路径主要在:
    1  CATALINA_HOME/conf/容器名字/主机名字/应用名字.xml
    2  CATALINA_HOME/webapps/应用名字/META-INF/context.xml
  其中路径1中:容器名字(enginename)通常为Catalina、主机名字为localhost。相关内容可以查看server.xml中:
DSC0000.jpg
  
静态部署——在tomcat启动时部署
  部署时,涉及到一个变量appBase。这个变量标识了一个目录,该目录存放着部署的web应用。
  一般默认情况下,appBase为CATALINA_HOME/webapps,配置信息位于server.xml中。
DSC0001.jpg
  其中常用的几个选项:
    appBase指定了部署的目录;
    autoDeploy设置是否自动部署(下小节动态部署中会介绍);
    unpackWARs设置了部署的形式,如果为true,则会以展开的形式部署;如果为false,则会以war包的形式部署。
  设置了以上的内容后(以上都是tomcat默认的配置,不需要做任何改动),当启动tomcat时,就会自动部署在appBase目录下的应用。
  并会按照下面的顺序进行部署:
    1 部署上下文描述符。
    2 部署展开的应用。如果部署目录中存在相应的war包,则检查是否比当前的应用更新;如果更新,则删除当前的应用,并解压该war包,得到最新的应用。
    3 部署war包。
动态部署——在tomcat运行时部署
  动态部署需要一个配置参数,就是上面提到的 autoDeploy 为 true。
  当设置了该属性后,tomcat会在其运行时支持如下的操作:
    1 部署新拷贝到appBase下的war文件
    2 部署拷贝到appBase下的展开的应用(未压缩的)
    3 当提供一个更新的war包时,重新部署应用。会先删除当前存在的应用,再进行解压部署。
    4 当/WEB-INF/web.xml被改写时,自动部署
    5 当web应用的context.xml上下文描述符被更新时,自动部署
    6 当CATALINA_HOME/conf下对应的应用的上下文描述符被更新时,自动部署
    7 当对应的docBase文档被删除时,自动部署。
使用TCD客户端程序部署
  TCD即tomcat客户端部署工具,它使用了Ant的构建脚本,因此需要具有一定Ant的知识。
    使用过程如下:
   首先,需要安装Ant以及JDK(这个就不说了,没它tomcat也跑步起来)。配置ANT_HOME和JAVA_HOME。
    然后,下载TCD部署包。一般我们使用的时候下载的是上面的核心包,如果想要使用TCD则需要下载下面的部署包。
DSC0002.png
  下载后在任意位置解压:
DSC0003.png
  可以看到目录中包含一个build.xml,TCD的相关任务内容就配置在这里面。
  下面看看这个构建脚本都包括什么任务:
  1 编译:
  编译和校验应用。这部分功能可以独立使用,并且不需要运行中的tomcat。经过编译的应用只能与相应版本的tomcat相关联,不能保证在其他版本的容器中也能使用,这是因为编译生成的代码与运行的组件有关系。需要注意的是,这个任务也会自动编译在/WEB-INF/classes目录下的类。
DSC0004.png
  2 部署:在tomcat容器中部署应用
  3 解除部署:解除应用的部署
  4 开始:开始web应用
  5 重新加载:重新加载web应用
  6 停止:停止web应用
DSC0005.png
  另外可以在deployer.properties中配置TCD相关的部署信息,并且按照键值对的形式配置。
  主要包括以下的内容:

  1 build:构建目录,默认是${build}/webapp/${path}。在编译任务结束后,编译的结果将会保存为${build}/webapp/${path}.war
  2 webapp:这个目录包含了将被编译和校验的展开应用。默认为myapp
  3 path:应用的部署上下文路径,默认是/webapp
  4 url:tomcat容器中管理器应用的绝对地址,改地址将会用于部署和解除部署应用。默认,部署会尝试进入默认的Locahost实例,即http://localhost:8080/manager
  5 username:tomcat管理器的用户名
  6 password:tomcat管理器的用户密码
  需要注意的是tomcat管理器的授权问题,如果不能正常使用管理器,该部署也会失败。
DSC0006.png 参考

  【1】Tomcat Web Application Deployment

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-94833-1-1.html 上篇帖子: Tomcat 5源码分析 下篇帖子: Play!framework 项目部署到Tomcat
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表