加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

[bigdata-080] tomcat 8.5 官方文档 摘要

发布时间:2020-12-14 03:10:53 所属栏目:大数据 来源:网络整理
导读:1. 官网地址 http://tomcat.apache.org/tomcat-8.5-doc/index.html 2. 介绍 $CATALINA_HOME ?这个目录就是tomcat的安装目录 $CATALINA_BASE是一个目录,这个目录是每一个实例的安装目录 3. 在linux下安装和启动 http://tomcat.apache.org/tomcat-8.5-doc/RUN
1. 官网地址 http://tomcat.apache.org/tomcat-8.5-doc/index.html 2. 介绍 $CATALINA_HOME ?这个目录就是tomcat的安装目录 $CATALINA_BASE是一个目录,这个目录是每一个实例的安装目录 3. 在linux下安装和启动 http://tomcat.apache.org/tomcat-8.5-doc/RUNNING.txt 3.1 需要安装jre7或者更高 3.2 配置环境变量 tomcat是java程序,不需要环境变量。tomcat的启动脚本需要环境变量。 需要配置如下环境变量: 3.2.1 CATALINA_HOME:tomcat的安装目录 3.2.2 CATALINA_BASE:这个环境变量指定了"active configuration"的tomcat的根目录,默认情况下等于CATLINA_HOME。 对tomcat,分开使用CATALINA_HOME和CATALINA_BASE,便于简化升级和维护。 3.2.3 JAVA_HOME或者JRE_HOME:这是jdk或者jre的安装目录 3.2.4 CATALINA_OPTS:很少使用,这是起停tomcat和其他命令的附加参数。 3.2.5 CATALINA_PID:这个是tomcat的pid文件所在位置 3.3 setenv脚本 除了CATALINA_HOME和CATALINA_BASE,所有环境变量都由setenv脚本指定。 3.4 启动tomcat $CATALINA_HOME/bin/startup.sh $CATALINA_HOME/bin/catalina.sh start 启动后,tomcat默认的web服务位于 http://localhost:8080 3.5 关闭tomcat $CATALINA_HOME/bin/shutdwon.sh $CATALINA_HOME/bin/catalina.sh stop 3.6 多tomcat实例配置 通常,在机器上有一个tomcat二进制安装包,但多个用户可以使用--使用方式是,设置CATALINA_BASE。 如果同时配置CATALINA_HOME和CATALINA_BASE,这两个目录下的内容分别如下 CATALINA_BASE目录下有bin,conf,lib,logs,webapps,work,temp CATALINA_HOME目录下有bin和lib目录 注意: 3.6.1 CALTALINA_BASE/lib和CATALINA_HOME/lib下的jar都会被加入到classpath,但CATALINA_BASE的是先加入且先被搜索。行规是:CATALINA_HOME/lib下放tomcat的标准库,CATALINA_BASE/lib放各种第三方库比如数据库驱动。但是,最好的建议是,不要在不同的web应用下共享各种jar包,而是要把它们分别放在WEB-INF/lib目录下。 3.6.2 CATALINA_BASE/bin目录,只有setenv.sh和tomcat-juli.jar这两个文件,但CATALINA_HOME/bin下面有各种起停脚本文件,如果CATALINA_BASE/bin目录下没有setenv.sh和tomcat-juli.jar这两个文件,就使用CATALINA_HOME/bin下的这两个文件。 3.6.3 CATALINA_HOME和CATALINA_BASE可以在xml里配置读取。 3.7 注意事项 在单例tomcat上,只有两个事情可能会出错: 3.7.1 tomcat默认端口是8080,如果两个web应用的端口都是8080,那么会冲突,需要修改$CATALINA_HOME/conf/server.xml 3.7.2 'localhost'机器找不到,这里要检查代理,可能是因为你的服务器使用了代理。 3.8 可选组件 tomcat native libary和commons deamon service launcher。 新人可以不用考虑它们。 4. 第一个webapp 4.1 一个标准webapp的目录层次 *.html、*.jsp等,html和jsp页面,需要放在不同的目录里,如果是小项目,放在同一个目录也可以。 /WEB-INF/web.xml,web应用部署描述 web application deployment descriptor,这个文件描述servlet和其他组件,这些组件组成应用。包括初始化参数,以及容器安全管理等等。 /WEB-INF/classes/,应用所需的所有java类都在这里,包括serverlet和非servelet,都会打包成jar文件, /WEB-INF/lib,第三方jar放在这里。 4.2 如何部署 4.2.1 将未打包的文件直接copy到$CATALINA_BASE/webappps,tomcat会自动启动这个web服务。我们可以使用build.xml下使用这个技术,因为这个是最快最容易的部署方式。 4.2.2 把jar包文件放到$CATALINA_BASE/webapps,tomcat启动后,会自动将jar包解压缩展开,然后执行应用。注意,如果你用这种方法更新web应用,需要同时删除jar文件和展开的目录,然后再重启tomcat。 4.2.3 如果使用tomcate的管理功能,也就是tomcat的/manager,你可以部署和删除应用且不需要重启。 4.2.4 还有一个就是,tomcat热部署,有若干中解决方案。 4.3 一个基于ant的第一个webapp 4.3.1 目录结构 docs/ 文档 src/ java源码 web/ 静态的文件,比如html,jsp,javascript,css,images web/WEB-INF web应用所需的特定的配置文件,包括web.xml。 在构建过程里,又会有如下两个目录 build/ 这个目录饱含webapp的所有东西 dist/ 执行ant dist会创建webapp所有东西,好扩license信息,文档,readme文件。 4.4 部署 将sample.war扔到webapps里,几秒内自动解压缩生效,可以在浏览器里看到url和对应页面; 如果删除sample.war,几秒后sample/目录也被自动删除;如果更新war包,同理。 5. 部署器deployer 5.1 tomcat manager是交互式/可编程的webapp部署和管理的java应用 http://tomcat.apache.org/tomcat-8.5-doc/manager-howto.html 此外,tomcat maven plugin也提供了许多非常方便的工具,http://tomcat.apache.org/maven-plugin.html。 5.2 webapp的静态部署没有安装需求,tomcat manager也没有任何安装需求但需要做一些配置。Tomcat client deployer(TCD)是需要安装的,具体参考这里http://tomcat.apache.org/tomcat-8.5-doc/deployer-howto.html#Deploying_using_the_Client_Deployer_Package。 5.3 context 关于webapp,有个context的概念,一个context就是tomcat称之为webapp的东西。用context descriptor配置context。一个context descriptor是一个xml文件,有各种配置,比如naming resources,session manager等等。早期,context descrptor放置在server.xml文件,但现在不鼓励这种做法。tomcate manager和tcd也引用context descriptor的配置参数。这个文件在? $CATALINA_BASE/conf/[enginename]/[hostname]/[webappname].xml $CATALINA_BASE/webapps/[webappname]/META-INF/context.xml 5.4 启动的tomcat时的部署 appbase,就是部署webapp的目录,默认的appbase是$CATALINA_BASE/webapps。在部署顺序上,优先级如下: 每个Context Descriptor最先部署; 每个展开的webapp被部署,这些webapp是没有被任何context descriptor引用。如果它们有一个关联的war文件,且这个war文件比它们的版本新,那么这个展开的webapp会被删除,然后部署新的基于这个war文件的应用; 每个war文件。 5.5 正在运行的tomcat的部署 如果autoDeploy的属性是true,那么它就会自动动态部署所有的被更新的webapp。这里分好几种情况,不过只需要记住war可以自动更新部署就行,其他细节用的比较少。 5.6 tomcat manger部署 5.7 tcd部署 6. manager 这里主要描述tomcat manager的使用 7. realms and AAA 这里主要是配置tomcat支持容器管理安全container managed security,基于数据库的用户/密码/用户角色管理。只有,你的webapp使用到了一个或者多个 <security-constraint>元素或者<login-config>元素才需要了解这一章,否则不需要看。 8. JNDI 资源(主要是各种xml文件配置) tomcat提供一个jndi的initialContext初始上下文实现实例,每个webapp都在initialContext下运行。jndi兼容于java企业版应用服务器。 8.1 web.xml配置 <env-entry> 环境变量 <resource-ref> 资源索引,比如jdbc数据源,比如javamail的session。 <resource-env-ref> 新版的<resource-ref> 8.2 context.xml配置 tomcat指定的资源配置,在$CATALINA_BASE/conf/server.xml 或者 META-INF/context.xml的 <context>元素。在<context>有如下元素: <Environment>环境变量 <Resource>资源文件 <ResourceLink>给资源文件增加一个link <Transction> 事务 <GlobalNamingResoures>全局配置 8.3 如何使用资源 java代码 ----------------------- // Obtain our environment naming context Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env"); // Look up our data source DataSource ds = (DataSource)envCtx.lookup("jdbc/EmployeeDB"); // Allocate and use a connection from the pool Connection conn = ds.getConnection(); ... use this connection to access the database ... conn.close(); ----------------------- 8.4 tomcat标准资源factories 有诸多自定义的标准资源 generic javabean resources: 8.4.1 resource factory可以创建任意的java class。这里给出一个创建javabean的例子。 8.4.2 数据库账户用户名和密码关系,这个xml文件也在tomcat-users.xml里 9. jdbc datasrouces--JNDI Datasource HOW-TO 包括oracle,mysql,db2,postgre等等。 这一块,貌似不需要在这里配置了,直接在应用里配置更简单 10. Class Loader类加载器 tomcat的父子类加载器如下 ? ?Bootstrap ? ? ? ? ? | ? ? ? ?System ? ? ? ? ? | ? ? ? ?Common ? ? ? ?/ ? ? ? Webapp1 ? Webapp2 ... 每个类加载器,加载不同部位的类。 11. jasper 2 jsp 引擎 这个东东是必需的。 jasper2有如下特性: jsp custom tag pooling,这个jsp custom tags可以池化和重用。 background jsp compliation,如果jsp页面发生变化,可以在background自动重编译。 recompile jsp when included page changes,重编译jsp jdt-eclipse的jsp的编译插件 12. ssl/tsl配置 13. ssi 14. cgi 15. proxy support 16. MBeans descriptors 17.default servlet ? 18. clustering tomcat集群,主要是通过session进行all-to-all复制进行的。 19. load balancer 这块不用考虑 20. connectors连接器 http和ajp,不知道是什么作用 21. Monitoring and Managing监控和管理 如果需要jmx,需要设置参数。 这里有一个具体的例子,用jmx监控tomcat http://www.cnblogs.com/dongguacai/p/5900507.html http://www.open-open.com/lib/view/open1397359125465.html 22. Logging 主要配置在${catalina.base}/conf/logging.properties 如果不可用则 ${java.home}/lib/logging.properties? 对webapp而言,是WEB-INF/classes/logging.properties 23. Apache Portable Runtime (APR) based Native library for Tomcat 主要是用本地代码提升性能。 24. virtual hosting 虚拟主机。这里是配置虚拟主机。如果有两个hostname,也就是ren和stimpy,如何配置。 server.xml文件,配置engine,如下: <Engine name="Catalina" defaultHost="ren"> ? ? <Host name="ren" ? ?appBase="renapps"/> ? ? <Host name="stimpy" appBase="stimpyapps"/> </Engine> 然后再创建webapps目录 mkdir $CATALINA_HOME/renapps mkdir $CATALINA_HOME/stimpyapps 25. advanced io 异步写静态文件,可以暂时不用考虑。 26. additional components 暂时不用考虑 27. mavenized 可以在tomcat里引用maven 28. Security Considerations 安全问题。 28.1 首先,操作系统,网络,数据库等,这些非tomcat要安全 28.2 不要使用root帐号运行tomcat。要使用那些无法远程登录的账户启动tomcat。要设定tomcat各种文件的读写权限。 28.3 网络有防火墙设定。 如此等等 29. windows service 不用考虑 30. windows authenticaion 不用考虑 31. The Tomcat JDBC Connection Pool jdbc连接池有多种选择。大型的web应用服务weblogic和websphere都提供连接池机制。tomcat也提供连接池。 连接池对象,可以在代码实例化配置参数,也可以在xml里配置,建议在xml里配置,这样代码最少。 在连接池里也可以配置拦截器interceptors 32. websocket 是一堆参数配置 33. Rewrite valve 这个功能类似apache的mod_rewrite功能。 rewrite valve可以配置在host的,也就是rewrite.config,配置方式在http://tomcat.apache.org/tomcat-8.5-doc/config/host.html。 也可以配置在webapp的context.xml文件,valve配置的rewrite.config文件,在WEB-INF目录。 rewrite.conf文件,包含一系列的待重写的目录directives RewriteCond TestString CondPattern 举例,根据user agent,向用户返回不同的页面: RewriteCond ?%{HTTP_USER_AGENT} ?^Mozilla.* RewriteRule ?^/$ ? ? ? ? ? ? ? ? /homepage.max.html ?[L] RewriteCond ?%{HTTP_USER_AGENT} ?^Lynx.* RewriteRule ?^/$ ? ? ? ? ? ? ? ? /homepage.min.html ?[L] RewriteRule ?^/$ ? ? ? ? ? ? ? ? /homepage.std.html ?[L]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读