码迷,mamicode.com
首页 > 其他好文 > 详细

tomcat各组件的常用配置

时间:2020-06-11 10:23:51      阅读:50      评论:0      收藏:0      [点我收藏+]

标签:dep   ext   证书   绑定   禁用   direct   主机   max   als   

顶级组件-server

<Server port="8005" shutdown="SHUTDOWN">
#没有指定地址,则默认监听127.0.0.1;8005为tomcat管理端口,当本机通过telnet访问此端口,并且输入SHUTDOWN字符串,则会关闭tomcat进程;可以将监听端口改为-1,是没有-1这个端口的,所以这样不会开启8005端口,或者可以修改shutdown的字符串;

连接器组件-connector

定义tomcat监听地址及端口,connector不属于任何host,而是属于整个tomcat,所以在tomcat中使用虚拟主机只能使用基于主机名的虚拟主机,任何一个端口都是属于所有的虚拟主机;

<Connector port="8080" protocol="HTTP/1.1"   #指定tomcat监听端口,指定默认协议
               connectionTimeout="20000"     #连接超时时长,单位是毫秒
               address="192.168.39.100"      #监听地址;不指定默认监听本机所有地址
               maxThreads=""                 #最大线程数,即并发连接数,默认为200
               enableLookups=""              #是否启用DNS查询功能,默认会把每个客户端请求时取得的客户端地址反解为主机名,需要关闭此功能;默认是启用,禁用需要修改为false    
               acceptCount=""                #等待队列的最大长度
               secure=""                     #如果开启https,则需要开启此项
               sslProtocol=""                #指定所要使用的ssl协议,并指定证书私钥文件    
               redirectPort="8443" />        #如果用户试图建立ssl会话,则把请求重定向到8443端口

顶级容器组件-engine

engine就是servlet引擎;一个engine内可以运行多个虚拟主机;

<Engine name="Catalina" defaultHost="localhost" jvmRoute="">
#指定执行引擎名称;当一个engine内有多个虚拟主机,需要指定一个默认的虚拟主机;当用户请求到达tomcat时,如果不适配于某个虚拟主机的话,则使用defaultHost定义由默认虚拟主机处理;将多个tomcat实例组建为集群时,需要在前端调度器添加特殊标识符进行路由,当使用haproxy基于cookie的会话粘性,需要在每个server上使用cookie定义一个专有标识符,用于用户请求路由绑定时使用的,jvmRoute类似于基于cookie的会话绑定时,赋予当前engine唯一的标识符

定义虚拟主机的组件-host

engine会判断请求报文host首部的值,判断与哪个host组件的name名称一致,用户的请求就会被路由至哪个host组件,如果用户的请求没有匹配的host,则路由至默认的host;

<Host name="localhost" appBase="webapps"   #指定虚拟主机名;指定网页文件根目录;如果访问网站的根,则网页文件必须在ROOT目录下
      unpackWARs="true" autoDeploy="true"> #如果host下还有其他组件,则最后使用>结尾,如果没有其他组件,则使用/>结尾    
</Host>                                    #放在根目录下的没有展开的war格式文件是否进行自动展开,默认为true,自动展开;是否支持自动部署,生产环境为了安全,不要进行自动部署
      

<Host name="node1.test.com" appBase="/data/webapps"    #通过多个host,指定多个虚拟主机,并且网站根的网页文件必须存放在根下的ROOT目录下
      unpackWARs="true" autoDeploy="true">              
</Host>

context组件

context的用法类似于nginx中的别名;context组件定义在host组件内;

<Context path="/myapp" docBase="/data/webapps/myapp" reloadable=""/> 
#如果内部不再嵌套其他组件,使用自封闭标识符结束;指定访问的URL别名;指定网页文件真实路径;是否支持重载

valve组件

valve组件设置在host组件内;

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
#className指定此处的valve的类型,有实现访问控制和记录日志等其他功能,并且每种类型需要通过不同的类实现;前面的engine上禁止了客户端主机名的解析,所以此处是根据客户端IP地址,进行记录访问日志;directory指定日志存放路径;prefix指定日志名称前缀,suffix指定日志名后缀,中间为日期;pattern指定日志格式,%h表示客户端地址,%u为用户登录认证时的名称,%t为访问时间,&quot;表示引号"本身,%r显示从哪个网站跳转过来的,%s响应码,%b响应字节数             

<Valve className="org.apache.catalina.valves.RemoteCIDRValve" deny="172.20.0.0/16"/>
#通过valve实现访问控制,拒绝172.20这个网段的客户端访问tomcat;基于CIDR地址的点不需要转义,但是如果是基于主机名,则点.需要进行转义

tomcat各组件的常用配置

标签:dep   ext   证书   绑定   禁用   direct   主机   max   als   

原文地址:https://www.cnblogs.com/dongzhanyi123/p/13091651.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!