zoukankan      html  css  js  c++  java
  • Tomcat9.x配置规范

    Tomcat9.x配置规范

    1. Tomcat9.X使用

    tomcat 有两个版本,压缩版与安装版

    压缩版:简单方便,官网下载下来后直接解压后就可以使用了。启动要通过命令去启动。

    安装版:需安装,安装后会自动注册为服务,可在服务中设置开机自启动。

    2. tomcat目录结构

     

    (1)bin:主要用来存放命令,.bat是windows下,.sh是Linux下

    (2)conf:主要用来存放tomcat的一些配置文件

    (3)lib:存放tomcat依赖的一些jar包

    (4)logs:存放tomcat在运行时产生的日志文件

    (5)temp:存放运行时产生的临时文件

    (6)webapps:存放应用程序

    (7)work:存放tomcat运行时编译后的文件,比如JSP编译后的文件

    3. tomcat三种部署方式

    第一种:直接将 web 项目文复制到tomcat的webapps目录中。

    第二种:在本地tomcat的conf目录中,新建Catalina/localhost目录(这里要注意文件名的大小写),然后在该目录下新建一个xml文件,名字不可以随意取,要和path后 的名字一致,我这里就应该是jstore.xml文件,它的具体内容为:

    <Context docBase="C:workjstoreweb" path="/jstore" reloadable="true"/>

    第三种: 在tomcat中的conf目录下的server.xml文件中,在<Host/>节点中添加一个context,具体为:

     

    4. tomcat配置与优化

    4.1. Connector连接器,主要负责Tomcat与客户端的通讯, 在/conf/server.xml文件中

    Connector默认配置,如图

     

    Connector参数配置与优化说明

     

    4.2. Protocol线程协议配置:

    HTTP/1.1:默认值,使用的协议与Tomcat版本有关。在Tomcat9中,默认自动选取使用NIO或APR(如果找到APR需要的本地库,则使用APR,否则使用NIO)

    org.apache.coyote.http11.Http11Protocol:BIO

    org.apache.coyote.http11.Http11NioProtocol:NIO

    org.apache.coyote.http11.Http11Nio2Protocol:NIO2

    org.apache.coyote.http11.Http11AprProtocol:APR

    大多数情况下性能比较,apr >nio>bio

    配置方式,如图

     

    4.3. Connector线程池配置:

     

     

     

    Executor的主要属性包括:

    name:该线程池的标记

    maxThreads:线程池中最大活跃线程数,默认值200(Tomcat7和8都是)

    minSpareThreads:线程池中保持的最小线程数,最小值是25

    maxIdleTime:线程空闲的最大时间,当空闲超过该值时关闭线程(除非线程数小于minSpareThreads),单位是ms,默认值60000(1分钟)

    daemon:是否后台线程,默认值true

    threadPriority:线程优先级,默认值5

    namePrefix:线程名字的前缀,线程池中线程名字为:namePrefix+线程编号

    4.4. jvm参数配置 

    Windows:

    修改文件:bin/catalina.bat,设置参数(写在第一行)

    set JAVA_OPTS=-Xms2048m -Xmx2048m -Xss1024K -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m

     

    查看Server Status

     

    Linux:

    修改bin/catalina.sh文件参数(写在第一行)

    JAVA_OPTS=-Xms2048m -Xmx2048m -Xss1024K -XX:MetaspaceSize=512m

    -XX:MaxMetaspaceSize=512m

    参数说明:

    1、 file.encoding 默认文件编码

    2、 -Xmx1024m  设置JVM最大可用内存为1024MB

    3、 -Xms1024m  设置JVM最小内存为1024m

    4、 -XX:NewSize  设置年轻代大小

    5、 XX:MaxNewSize 设置最大的年轻代大小

    6、 -XX:PermSize  设置永久代大小

    7、 -XX:MaxPermSize 设置最大永久代大小

    8、 -XX:NewRatio=4:设置年轻代(包括Eden和两个Survivor区)与终身代的比值(除去永久代)。设置为4,则年轻代与终身代所占比值为1:4,年轻代占整个堆栈的1/5

    9、 -XX:+DisableExplicitGC这个将会忽略手动调用GC的代码使得 System.gc()的调用就会变成一个空调用,完全不会触发任何GC

    4.5. Tomcat中web.xml配置

    应用程序运行时最终会加载conf/web.xml和应用的web.xml的合集

    每一个web应用最终是被发布到Tomcat的webappes目录下,Tomcat是它们的运行环境。可以理解为Tomcat的web.xml文件是每一个web应用的web.xml的父文件,Tomcat将每个应用的公共配置提取出来放在conf目录下的web.xml中,每个应用的个性配置放在自己的web.xml文件

    1.指定欢迎页面,在应用的web.xml中如果没有对<welcome-file-list>进行覆盖,那么默认主页为index.html、index.html、index.jsp。

     

    2.设置session的存活时间,默认为30分钟

     

    3. 设置过滤器,过滤所有资源

     

    4.定义了WEB应用的名字

     

    5. 返回特定HTTP状态代码时,或者特定类型的异常被抛出时,能够制定将要显示的页面

     

    6.配置servlet初始化参数

     

    servlet 配置Servlet

    servlet-name 定义Servlet的名字

    servlet-class 指定实现这个servlet的类

    init-param 定义Servlet的初始化参数和参数值,可有多个init-param

    load-on-startup 指定当Web应用启动时,装载Servlet的次序,当值为正数或零时,Servlet容器先加载数值小的servlet,再依次加载其他数值大的servlet

     

     

    4.6. Logs目录默认日志文件

    tomcat  有五类日志 :catalina、localhost、manager、admin、host-manager

    1.catalina.out

    即标准输出和标准出错,所有输出到这两个位置的都会进入catalina.out,这里包含tomcat运行自己输出的日志以及应用里向console输出的日志。默认这个日志文件是不会进行自动切割的,我们需要借助其他工具进行切割(注意:catalina.out文件如果过大会影响)

    2. catalina.{yyyy-MM-dd}.log

    这个主要是记录tomcat启动时候的信息,类似于我们在eclipse中启动服务的时候在控制台看到的信息。在里面可以看到启动的JVM参数以及操作系统等日志信息。如果没有使用log4j等日志机制,系统的的错误信息与打印语句也在这个日志文件中记录。(linux下所有的日志都在catalina.out中)

    3.host-manager.日期.log

    放tomcat的自带的manager项目的日志信息的

    4. localhost.{yyyy-MM-dd}.log

    主要是应用初始化(listener, filter, servlet)未处理的异常最后被tomcat捕获而输出的日志,它也是包含tomcat的启动和暂停时的运行日志,但它没有catalina.2018-09-19.log 日志全。它只是记录了部分日志

    5.localhost_access_log.日期.txt

    是存放访问tomcat的请求的所有地址以及请求的路径、时间,请求协议以及返回码等信息(重要)

    6.manager.YYYY-MM-DD.log

    是tomcat manager项目专有的日志文件

  • 相关阅读:
    SpringMVC执行原理
    Hello SpringMVC 注解版
    Hello SpringMVC 注解版
    Mybatis一对多和多对一处理
    2020-08-08日报博客
    2020-08-07日报博客
    《大道至简》读后感
    2020-08-06日报博客
    2020-08-05日报博客
    2020-08-04日报博客
  • 原文地址:https://www.cnblogs.com/show58/p/14246311.html
Copyright © 2011-2022 走看看