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

[经验分享] tomcat 7 doc笔记

[复制链接]

尚未签到

发表于 2017-1-22 10:56:48 | 显示全部楼层 |阅读模式
  中英互译:terminology:术语。term:词。
  context指一个web application。
  tomcat的主配置文件是/conf/server.xml。所有配置文件只在tomcat启动时启动,若要使启动后的配置文件生效,需要重启tomcat。
  在运行tomcat前,请确保系统已经配置好JAVA_HOME和CATALINA_HOME变量。
  tomcat7运行在jdk6下。
  全局(所有) context共享的lib可以放到$Catalina_home/lib下,例如jdbc驱动。
  $context/META-INF/context.xml文件可以用来定义tomcat的一些特殊配置。
  通过复制app文件夹或app.war到$Catalina_Home/webapps/下的方法,可以让tomcat自动加载该app。该app的context path为app的文件名。
  通过$catalina_home/webapps/Manager应用可以在运行时动态布置app。
  context代表一个app。早期的tomcat把context的配置放在$catalina_home/conf/server.xml下。虽然现在也可以这样,但不建议。context应该在以的其中一个地方配置$catalina_home/conf/[enginename]/[hostname]/context.xml。$catalina_home/webapps/[webappname]/META-INF/context.xml。
  如果不为应用配置context.xml文件,tomcat会使用默认的值配置这个context。
  默认情况下,tomcat启动时会先启动有context.xml的应用,然后再布置没有context.xml文件的应用,最后会解压.war文件(旧的被解压的.war目录会被删除)。
  如果Host节点设置了autoDeploy属性为true,即tomcat后台线程会动态检测应用的改变实现动态布置。移入新的war文件、加入新的app、更改/web-inf/web.xml文件、更改对应和context.xml文件都会使tomcat重新加载该应用。
  /manager模块可以实现应用的动态部署、删除、重新加载、列举在线应用等功能。另外也可以查看session的状况。
  在/catalina_home/conf/tomcat-users.xml中可以配置/manager模块的用户。
  realm是一个放置用户名和密码的集合。你可以实现自已的jdbc/datasource/等类形的realm。默认采用/catalina_home/conf/tomcat-users.xml中的realm。realm可以设置在engine/host/context下,在不同的地方设置,作用域也不同。
  tomcat7的classloader各个app拥用自已的classloader,上一层是common,然后是system、bootstrap。
  bootstrap装载的是jre及jre/lib/ext下的类。system装载的是$catalina_home/bin/bootstrap.jar和juli.jar里的类。common装载的是$catalina_home/lib下的类。app装载的是web/lib和class下的类。
  类加载体系加载类的顺序为jvm/systemclass loader、web-inf/classes、web-inf/lib/*.jar、$catalina_home/lib。
  有一个默认的servlet,配置文件在$catalina_base/conf/web.xml下。作用是列举目录。这个配置文件还为一些文件配置了doctype及欢仰文件。
  在server.xml的engine节点下可以配置多个不同的virtual host,不同的host可以设置不同的appBase(webapps目录)。需要注意的是context节点的docbase不能为任何一个appbase相同。而ROOT的文件夹名应用为根应用。
  tomcat7的架构。最外层的是Server。Server代表整个容器。下一层是Service,Service是Server下的一个中间组件。再下一层是Engine。Engine是处理请求与响应的管道。再下一层是Host,一个Engine可以有多个Host,而一个Host可以有一个网洛名及多个别名。再下一层是Context。一个Host下可以有多个Context。每个Context代表一个应用。Connector在Service之下,与Engine并排。Connector处理与用户的交互,它包含http connector/ajp connector等。简单一点就是:Server-Service-(Conector)/(Engine-Host-Context)。
  $Catalina_home/conf/server.xml的配置说明如下:
  Server节点中的address属性用于设置可发出关闭命令的地址,默认为localhost。port为接收关闭命令的端口,设置为-1可以关闭该功能,同时让shutdown.bat失效。
  Service下可以配置executor节点,其中属性maxThreads用于设置最大线程池的大小,默认为200,minSpareThreads用于设置最小闲置线程,默认为25。maxIdleTime用于设置线程被关闭前的时间,默认为一分钟。Service下配置executor节点是全局共享下。另外也可以为每个connector配置单独的线程词。
  http connector中的maxPostSize用于设置最大post表单url大小,默认为2m,port用于设置请求端口,protocol用于设置协议,URIEncoding用于设置URL编码,,默认为iso-8859-1。acceptCount用于设置最大的请求队列,默认为100,超出该出求队列的请求将会被拒绝。address用于在一台机多个IP情况下只处理一部份IP的情况。默认情况下处理所有的IP。disableUploadTimeout用于设置是否在上传文件时延长超时,默认为ture,executor用于设置该connector所有的executo,如果设置了,即executor的参数将复盖该connector的参数。keepalivetimeout用于设置关闭一个connection前等待另一个请求的时间。maxHttpHeaderSize用于设置最大的http报头,默认为8k,maxThreads用于设置最大的链接线程数。
  context可以定义在$home/conf/server.xml中,但不建议这样做。另外可以定义在$home/conf/Context.xml中。也可以定义在$home/conf/[enginename]/[hostname]/context.xml或者$home/conf/[enginename]/[hostname]/[contextname].xml
  Context中的一些重要属性:docBase用行设置应用的目录。path用于设置上下文路径。reloadable用于设置是否在运行时监测class/lib目录的改变并重新另载。
  可以在Context元素下增加一个<Value className/prefix/suffix/pattern来设置日志。
  在web.xml中设置<context-param><param-name><param-value>和在context元素中设置<Parameter name是一样的效果。
  可以在context元素中增加元素<value className/allow/deny来限制IP。
  Engine节点中也可以设置Value元素限制IP。
  Host节点的元素意义如下:appBase用于设置默认的webapp目录,放到该目录下的所有app都会被加载。xmlBase用于设置加载context.xml文件的路径。autoDeploy用于设置在运行时是否自动检查有新的应用被布置。deployOnStartup用于设置是否在tomcat启动时自动加载应用。name用于设置host的域名。
  在Host节点下也可以增加Value节点用于设置log的位置和命名。
  在host下可以设置多个<alias节点,用于设置多个域名。
  Host同样可以通过Value设置过虑IP。

运维网声明 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-332010-1-1.html 上篇帖子: tomcat 集群配置流程 下篇帖子: 配置tomcat访问日志
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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