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:\work\jstore\web" 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项目专有的日志文件

posted @ 2021-01-07 14:28  溶洞  阅读(1245)  评论(0编辑  收藏  举报