• tomcat各组件的常用配置


    顶级组件-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地址的点不需要转义,但是如果是基于主机名,则点.需要进行转义
  • 相关阅读:
    Javascript异步与同步问题
    promise解决异步问题:.then和async_await的渊源
    vue 爬坑之路----移动端适配rem单位
    vue 爬坑之路---can't resolve 'sass-loader'
    vue-cli新建vue项目
    sublimeT3编译sass.为css到指定的路径。
    禁止滚动条滚动
    让本地的静态html页面在node上跑起来
    地址三联动,简明实现
    关于数组去重
  • 原文地址:https://www.cnblogs.com/dongzhanyi123/p/13091651.html
Copyright © 2020-2023  润新知