Tomcat 官网知识总结
一、Tomcat 基本介绍
1.关键目录
  a) bin
    该目录包含了启动、停止和启动其他的脚本,如startup.sh、shutdown.sh等;
  b) conf
    配置文件和一些文档定义规则,其中server.xml文件是tomcat容器的主要配置文件;
  c) logs
    该目录是默认的日志目录,其中控制台打印出来的内容,都会保存在catalina.log中;
  d) lib
    该目录下主要放置了servlet和jsp需要的jar包
  e) webapps
    1.放置web应用程序
    2.其中ROOT目录下存放的是tomcat的首页,如访问localhost:8080时,默认访问该目录下的index.html;
    3.docs中存放的是tomcat的官方文档;
    4.examples下是示例jsp应用程序
  f) 所有的配置信息都是在启动时读取,所以当修改配置信息之后,必须重启tomcat;

2.tomcat安装与启动
  a) 安装JDK Java工具
    1.download jdk-7u79-linux-x64.gz
    2.unzip jdk-7u79-linux-x64.gz -d /usr/local/jdk1.7.0_79
    3.ln -s /usr/local/jdk1.7.0_79/ /usr/local/jdk #创建软连接,方便下次版本升级

  b) 设置JDK环境变量
    1.echo "export JAVA_HOME=/usr/local/jdk1.7.0_79" >>/etc/profile
    2.echo "export JRE_HOME=${JAVA_HOME}/jre" >>/etc/profile
    3.echo "export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib" >>/etc/profile
    4.echo "export PATH=${JAVA_HOME}/bin:$PATH" >>/etc/profile
    5.source /etc/profile

  c) 安装tomcat
    1.download apache-tomcat-6.0.39.tar.gz
    2.tar -zxvf apache-tomcat-6.0.39.tar.gz -d /data1/tomcat
    3.echo "CATALINA_HOME=/usr/local/apache-tomcat-6.0.39" >>/data1/tomcat/apache-tomcat-6.0.39/bin/catalina.sh
    4.chmod +x /data1/tomcat/apache-tomcat-6.0.39/bin/*.sh
    5.tail -100f /data1/tomcat/../bin/logs/fantasia/ #查看日志
    6.netstat -ano | grep 8080 #查看端口是否被监听

  d) 启动、关闭Tomcat
    1.cd /data1/tomcat/../bin/
    2.sh catalina.sh 或者 sh startup.sh #启动tomcat
    3.sh shutdown.sh 或者 ps aux | grep 8080 | grep -v "grep" | awk '{print $2}' | xargs kill -9 #关闭tomcat

3.Tomcat 常见故障
  a) Http 端口冲突
    1.cause:#这种问题可能是已经启动了一个tomcat服务,当启动第二个时,端口已经被占用,就会报错。
    2.solve:#修改CATALINA_HOME/conf/server.xml中8080端口
    <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

  b) localhost 找不到
    1.cause:#这种情况可能是由于设置了网络代理
    2.solve:#修改浏览器的代理配置

4.Tomcat 可选组件
  a) Tomcat本地库:用于通过Http和AJP连接Tomcat
  b) Tomcat守护进程:Windows中安装成服务;Unix中安装成守护进程

二、创建一个web应用
1.web应用目录结构
  a) 在tomcat中所有的应用都是放置在CATALINAT_HOME/webapps下,其中CATALINAT_HOME是指tomcat的根目录
  b) 放置在webapps下的文件通常有两种格式:war 和 文件夹
  c) 如果是war包,tomcat会在启动之后自动把它解压到当前目录
2.部署
3.发布
4.测试

三、部署Tomcat
1.tomcat静态部署
  a) 静态部署是指在tomcat启动时部署
  b) 直接拷贝相应的web展开目录、或者war包(展开目录的意思就是tomcat可以直接访问的应用目录,是未经过压缩的。相反的就是war包,是一种经过压缩的web应用文件)
  c) 静态部署时,涉及到了一个变量appBase,这个变量标识了一个目录,该目录存放着部署的web应用
  d) 其中常用的几个选项:
    1.appBase #指定了部署的目录(就是webapps)
    2.autoDeploy #设置是否自动部署
    3.unpackWARs #设置了部署的形式,如果为true,则会以展开的形式部署;如果为false,则会以war包的形式部署
    4.设置以上的内容以后,当启动tomcat时,就会自动部署在appBase目录下的应用
  e) 部署顺序:
    1.部署上下文描述符(Context,在tomcat中,上下文就是一个web应用)
    2.部署展开的应用,如果部署目录中存在相应的war包,则检查是否比当前的应用更新;如果更新,则删除当前的应用,并解压该war包,得到最新的应用
    3.部署war包

2.tomcat动态部署
  a) 动态部署是指在tomcat运行时自动部署
  b) 通过tomcat管理器或者其他工具(如TCD,tomcat client deployer)执行部署。
  c) 但是如果要使用TCD进行部署,那么就需要预先安装JDK和Ant,因为TCD中内置的是Ant的任务构建脚本;然后再下载TCD的部署包。
  e) 动态部署需要autoDeploy 参数为true,当设置了该属性后,tomcat会在其运行时支持如下操作:
    1.部署拷贝到appBase下的war文件
    2.部署拷贝到appBase下的war文件
    3.当提供一个更新的war包时,重新部署应用,会先删除当前存在的应用,再进行解压部署
    4.当/WEB-INF/web.xml被改写时,自动部署
    5.当web应用的context.xml上下文描述符被更新时,自动部署
    6.当CATALINA_HOME/conf下对应的应用的上下文描述符被更新时,自动部署
    7.当对应的docBase文档被删除时,自动部署。

3.使用TCD客户端程序部署
  a) TCD就是tomcat部署工具,它使用了Ant的构建脚本
  b) 不做详细介绍

四、管理Tomcat(在运行状态下管理tomcat发布、停止、重新发布应用)
  1.Tomcat 管理器是什么?
    a) 对于生产环境的web服务器来说,在不关闭或者重启服务器的情况下,部署或者停止某些应用是很必要的
    b) 通过tomcat管理器可以做到在线部署
    c) 为了支持这个功能,tomcat在默认的下载包中webapps目录下包含了一个manager应用(这个是默认就有的)
    d) 这个应用主要包含以下功能:
      1.根据上传的war包部署文件
      2.通过配置上下文路径部署文件
      3.当/WEB-INF/classes和/WEB-INF/lib有修改时,重新加载应用
      4.列出系统以及JVM的属性值
      5.列出可用的JNDI资源
      6.列出数据库中的安全角色
      7.开启关闭应用
      8.关闭正在运行的应用
      9.列出当前所有部署的应用,以及其会话信息
      10.解除应用的部署,删除其目录

  2.如何配置tomcat管理器
    a) manager-gui #通过html页面管理
    b) manager-script #通过文本管理
    c) manager-jmx #通过JMX管理
    d) manager-status #通过只读接口管理
    e) 通过修改配置文件来给用户配置密码
      1.修改tomcat下conf下的tomcat-users.xml文件
        #<?xml version='1.0' encoding='utf-8'?>
        #<tomcat-users>
        # <role rolename="manager"/>
        # <user username="xingoo" password="test" roles="manager"/>
        #</tomcat-users>

      2.添加user和role标签,注意roles里面的角色名字,必须包含manager。

五、域和访问控制(通过配置Realm达到访问安全管理)
  1.什么是Realm
    a) Realm 可以理解为"域"或者"组",它提供了一种用户密码与web应用的映射关系

  2.为什么需要Realm域
    a) 因为tomcat中可以同时部署多个应用,因此并不是每个管理者都有权限去访问使用这些应用,因此出现了用户的概念;
    b) 但是,如果每个应用都去配置具有权限的用户,那显得很麻烦,因此出现了role这样的概念;
    c) 只要具有某一角色就可以访问该角色对应的应用。从而达到一种域的效果。

  3.Realm 工作原理
    a) 在tomcat-users.xml中将每个用户设置成不同的角色;
    b) 在web.xml中设置每个应用可以访问的角色
    c) 当tomcat启动之后,就会通过Realm进行验证(server.xml中配置),通过验证之后就可以访问该应用了

  4.理解server.xml
    a) server: #即服务器,每个tomcat程序启动之后,就是一个server
    b) service: #这是一种抽象的服务,通常是在日志或者管理时使用这样的概念,它把连接器和处理引擎结合在一起
    c) connector:#用于处理连接和并发,通常包括两种方式:
      1.Http: #用于网页地址栏http这种访问方式;
      2.JSP: #一般用于搭配Apache服务器;

    d) engine: #处理引擎,所有的请求都是通过处理引擎处理的
    e) host: #虚拟主机,用于进行请求的映射处理,每个虚拟主机可以看做独立的请求文件
    f) realm: #用于配置安全管理角色,通常读取tomca-users.xml进行验证
    g) context:#上下文,对应于web应用

  5.tomcat的架构设计如下:
    server: #服务器
      service: #抽象服务
        connector: #连接器
        engine: #处理引擎
          realm: #安全访问域(在engine中)
          host: #虚拟主机
            context: #上下文

  6.tomcat的工作原理:
    a) 首先将请求发送给服务器;
    b) 服务器使用相应的服务进行处理;
    c) 然后通过不同的连接器请求后发送给处理引擎;
    d) 处理引擎通过对虚拟主机的分析,发送给相应的虚拟主机;
    e) 虚拟主机使用相应的应用(webapps下的应用)响应;
    f) 简而言之,就是先讲请求发送到连接器,连接器转发给处理引擎进行处理。

  7.待续...

Tomcat 官网知识总结篇的更多相关文章

  1. Spring官网阅读 | 总结篇

    接近用了4个多月的时间,完成了整个<Spring官网阅读>系列的文章,本文主要对本系列所有的文章做一个总结,同时也将所有的目录汇总成一篇文章方便各位读者来阅读. 下面这张图是我整个的写作大 ...

  2. 程序员必知的技术官网系列--mysql篇

    mysql 官网 https://www.mysql.com/ 官网布局很简单, 其中常用的两块就是下载和文档这两块, 其中下载没什么可讲的, 本次重点依旧是文档. 首页 mysql 文档导航页 ht ...

  3. tomcat官网

    http://tomcat.jaxmao.org/appdev/index.html 配置 http://www.cnblogs.com/starhu/p/5599773.html

  4. tomcat官网改版后下载方式

    位于disk/tomcat目录下 http://archive.apache.org/dist/tomcat/ 具体例如:http://archive.apache.org/dist/tomcat/t ...

  5. Spark记录-官网学习配置篇(二)

    ### Spark SQL Running the SET -v command will show the entire list of the SQL configuration. #scala/ ...

  6. Spark记录-官网学习配置篇(一)

    参考http://spark.apache.org/docs/latest/configuration.html Spark提供三个位置来配置系统: Spark属性控制大多数应用程序参数,可以使用Sp ...

  7. 【WEB】Tomcat基础使用知识

    由于当前项目性质原因,从开始到现在使用的WEB服务器都是WAS,而Tomcat的基础知识也慢慢地被遗忘.由于种种原因,让我参与到了另外一个全新的项目,使用的是Tomcat6.X,所以复习是必须的,而写 ...

  8. 从官网下载mod_jk.so

    最近在搞apache和tomcat集群,这里就要用到mol_jk.so,在官网找了很久才知道在哪里下载,英语是硬伤啊. 1.打开tomcat官网 http://tomcat.apache.org/ 2 ...

  9. Python爬虫教程-15-读取cookie(人人网)和SSL(12306官网)

    Python爬虫教程-15-爬虫读取cookie(人人网)和SSL(12306官网) 上一篇写道关于存储cookie文件,本篇介绍怎样读取cookie文件 cookie的读取 案例v16ssl文件:h ...

随机推荐

  1. CSS结构伪类E:first-child/last-child/only-child/empty

    E:first-child解释:E的父元素的第一个子元素正好是E,给这个E定义样式 E:last-child解释:E的父元素的最后一个子元素正好是E,给这个E定义样式 E:only-child解释:E ...

  2. Web Service学习笔记(webservice、soap、wsdl、jws详细分析) (转)

    Web Service概述 Web Service的定义 W3C组织对其的定义如下,它是一个软件系统,为了支持跨网络的机器间相互操作交互而设计.Web Service服务通常被定义为一组模块化的API ...

  3. javascript系统时间

    <div>                <%--系统时间--%>                当前时间是:                <script type=& ...

  4. 《第一行代码》学习笔记28-内容提供器Content Provider(1)

    1.内容提供器:用于在不同的应用程序之间实现数据共享的功能,提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访问 数据的安全性.使用内容提供器是Android实现跨程序共享数据 ...

  5. 查看Sql语句执行速度

    原文链接:http://www.cnblogs.com/New-world/archive/2012/11/28/2793560.htmlMS_SQL模糊查询like和charindex的对比 lik ...

  6. asp.net mvc 删除栏目、栏目下又有子栏目的处理方式

  7. zsh-替换掉黑白的控制台

    官方地址:里面有详细的安装指南 http://ohmyz.sh/

  8. 史上最全前端面试题(含答案) - Web开发面试题

    HTML+CSS 1.对WEB标准以及W3C的理解与认识 标签闭合.标签小写.不乱嵌套.提高搜索机器人搜索几率.使用外 链css和js脚本.结构行为表现的分离.文件下载与页面速度更快.内容能被更多的用 ...

  9. js修改window对象中的url历史记录

    //页面地址:http://localhost/11/account.html//访问页面后,地址变为:http://localhost/11/account.html?type=banana con ...

  10. 转载:常见EXE文件反编译工具

    PE Explorer V1.99 R5 绿色汉化特别版_强大的可视化汉化集成工具 功能极为强大的可视化汉化集成工具,可直接浏览.修改软件资源,包括菜单.对话框.字符串表等: 另外,还具备有 W32D ...