话说tomcat的前世今生
2012-10-23 10:58:51| 分类: apache_tomcat | 标签: |字号大中小
话说tomcat的前世今生
一:Tomcat 的由来
- Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。
- 由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。
- 因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
- 目前最新版本是Tomcat 7.0.29
- 重要的是Tomcat 是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选
- jdk-7u5-linux-i586.rpm 为tomcat的运行提供java环境即运行环境
二:Tomcat的逻辑结构
- 下面我们就围绕这个tomcat的逻辑结构图,展开对tomcat的解说
-
Tomcat的配置文件
- tomcat的逻辑结构:
- 通过上面的图示我们可以看出
- Tomcat server 是由 service , Engine,Host,context(应用程序)组成
- 其中 service 通过 多个Connector与Engine连接
- 注意:目前主要的连接器connector有http (仅支持http/1.1版本)和AJP
- Engine内部又包含多个host主机
- 一个engine可以包含多个host但是需要一个默认的host
- 对host 主机tomcat提供了Valve Realm logger 机制
- 一个host又可以包含多个Context
- 每一个Context仅对应与一个web应用程序
- 一个host可以包含多个context
- 一个context对于与一个web应用程序
- 而每一个web应用程序又至少需要web.xml当前应用程序的部署描述符
2. Tomcat的目录解释
- tomcat目录结构
- /bin:存放配置,控制,停止catalina server 的一些相关脚本
- /conf:存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和web.xml
- /doc:存放Tomcat文档
- /webapps:Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录
- 子目录WEB_INF/目录:包含三个子目录:classes、lib和web.xml
- 其中 classes 是应用运行时需要的私有类(编译好的可执行字节码),
- lib中存放的是应用运行时需要的公共类 web.xml 当前应用程序的部署描述符
- 子目录 host-manager ,manager 提供的是Tomcat的web管理工具
- /work:存放JSP编译后产生的class文件
- 实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的
- 所以 Apache和通过Connector与Tomcat连接,实现Apache在web前端仅处理用户请求的静态内容,
- 用户请求的动态内容通过Connector交给后端的Tomcat server 处理,从而实现对用户请求内容的快速响应。
三 :tomcat的web管理方式
- Tomcat的web管理有两种方式host manager和manager
- 但是图示中的三种web管理方式(除status)这两者都需要具有角色内的用户才有权
- 限访问
- 添加角色
- <tomcat-users>
- <role rolename="manager-gui" /> --?Manager角色的定义方式
- <user username="tomcat" password="tomcat" roles="manager-gui" />
- <role rolename="admin-gui" /> ---? Host Manager角色的定义方式
- <user username="tom" password="tom" roles=”admin-gui" /> ---
- < / tomcat-users>
- 访问验证一下:
四:tomcat的用户会话管理(session manager)
- 分为标准会话管理:该会话管理方式中tomcat服务需要正常关闭,否则用户会话将会丢失
- 或者将所有用户的会话信息都定期的保存在磁盘上某一个文件中(而非实时的保存用户会话信息)通常为.ser文件
- <ManagerclassNameManagerclassName="org.apache.catalina.session.StandardManager" maxInactiveInterval="7200" />
- maxInactiveInterval指的是将用户的会话信息保存2个小时
- 验证:
- /usr/local/tomcat/bin/catalina.sh stop
- /usr/local/tomcat/bin/catalina.sh start
- 说明:只要用户一直在线,用户的会话信息就会一直保持及时tomcat服务器重启,
- 但是这种实现方式需要tomcat服务正常的关闭,否则用户的会话信息不能得到保存 ,就出现了下面
- 的一致解决用户会话信息保存的问题了
- 持久会话管理: 将用户的会话信息保存至持久存储中,并且可以再服务器意外终止后重新启动时加载用户会话信息,
- 在改种会话管理的方式中,用户会话信息保存至文件存储Filestore(.session文件)或者JDBCStore存储中
- <Manager className="org.apache.catalina.session.PersistentManager"
- saveOnRestart="true">
- <Store className="org.apache.catalina.session.FileStore"directory="/data/tomcat-session" />
- Manager>
- 注意:如果是JDBCStore的是directory需要更正
阅读(954) | 评论(0) | 转发(0) |