tomcat基础小结

目录结构

bin:可执行文件,包含启动脚本 conf:配置文件 lib:tomcat的依赖库 logs:日志 temp:临时文件 webapp:默认的应用部署目录 work:供web应用使用,tomcat的工作目录,放置tomcat运行中产生的一些文件,如,跑jsp时,翻译出来的servlet一般在这里面。 LICENSE:许可证文件 NOTICE、RELEASE-NOTES、RUNNING.txt:

JVM启动参数配置 环境变量JAVA_OPTS -server-Xms512m -Xmx521m 最小堆内存,最大堆内存,一般可以一样大 如:

//在本发起有效
export JAVA_OPTS = "-server-Xms2048m -Xmx2048m"
//设置一直有效
cat ~/.bashrc

//启动-运行bin目录下的对应启动脚本
./bin/startup.sh

配置文件

重要配置文件 server.xml 结构

Server 最顶层

Service 一个Server可配置多个Service

Connector 一个Service可以有多个Connector 用来接收用户请求。

Engine 一个Service有一个Engine 用于处理Connect接收到的请求,包括平时写的代码也是由其执行。

Host 一个Engine可以有多个Host Host是虚拟主机的概念,即配置域名和ip。

Context 一个Host可有一个或多个Context。 一个Context即一个web应用。

对应组件的实现

Connector

1、Coyote组件,实现了许多不同的Connector 默认BIO Connector 使用传统的 阻塞式的bio的操作的方式,实现方式也是传统的java I/O的实现。 客户端一个链接过来,服务端分配一个线程处理,若请求比较大,时间很久请求头没发完,对应的处理线程就只能一直等待。 2、Container 容器具体执行web应用代码逻辑的部分。 具体实现:Catalina tomcat中实现容器的组件,最终都是由Catalina中的代码执行的。

请求处理流程

java_tomcat_request01

参数配置

Connector

port address 监听网络请求时到哪个地址,一般会有多个ip,若不配置,会在所有地址上监听。 protocol 协议,默认htpp1.1,调优可能会调整更高的。 connectionTimeout 多长时间不发请求则断开,即连接超时时间 acceptCount 排队队列最大值。超过后,超出的会被拒绝处理,即不再处理后面的。 maxConnections 最大连接数。超过后值会接收但不处理。设置-1表示不设置连接数。 minSpareThreads 最小空闲线程数 maxThreads 最大线程数

Executor 线程池 事先创建一定数目的线程,当有任务时,从池中取出用完后再放回池中。 minSpareThreads 最小空闲线程数 maxThreads 最大线程数

当Connector同时配置依赖Executor和minSpareThreads/maxThreads,优先Executor。

    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="150" minSpareThreads="4"/>
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
			   executor="tomcatThreadPool"
               redirectPort="8443" />

Tomcat日志

作用

Tomca运行情况获知 调试利器

分类

系统运行日志:运行信息与状态 访问日志:记录请求访问 应用日志:应用程序打印日志 访问日志: 配置文件 server.xml

        <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" />

directory :日志目录 prefix:日志名前缀 suffix:日志名后缀 pattern:日志格式

请求方式(get/post等):method: %m 客户端ip:client ip:%a 请求时刻:time:%t 用户响应码: status:%s 服务端下发字节数: byteSent: %b User-Agent:%{User-Agent}i

日志切割 fileDateFormat="yyyy-MM-dd." --时戳格式 rotatable = "true" --是否开启日志滚动

优化相关

Tomcat学习总结(3)——Tomcat优化详细教程

闲谈Tomcat性能优化 如何优化tomcat配置(从内存、并发、缓存4个方面)优化

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java技术学习之道

详解Tomcat 配置文件server.xml

2702
来自专栏Netkiller

Tomcat 安全配置与性能优化

Tomcat 安全配置与性能优化 摘要 我的系列文档 Netkiller Architect 手札Netkiller Developer 手札Netkiller...

3685
来自专栏日常分享

Java 以及JEE环境快速搭建

  博主最近找了一个Java Development的实习,加上上个月末的考试周,所以很久没有更新博客。   上了一周的班,还没有在熟悉项目的阶段。

1781
来自专栏云计算教程系列

如何使用Winston记录Node.js应用程序

在本指南中,我们将重点介绍Winston的日志包,这是一个极其通用的日志库,是基于NPM下载统计信息,可用于Node.js应用程序的日志记录解决方案。Winst...

6725
来自专栏Linyb极客之路

springboot打包部署的那些事

springboot-maven-plugin打包的第一级目录为Boot-INF,如果不做任何配置,直接mvn clean package会发现无法把本地的ja...

3K2
来自专栏磨磨谈

基于Docker UI 配置ceph集群

前一篇介绍了docker在命令行下面进行的ceph部署,本篇用docker的UI进行ceph的部署,目前来说市面上还没有一款能够比较简单就能直接在OS上面去部署...

942
来自专栏张戈的专栏

Linux系统防CC攻击自动拉黑IP增强版Shell脚本

最新更新:张戈博客已推出功能更强大的轻量级 CC 攻击防御脚本工具 CCKiller==>传送门 前天没事写了一个防 CC 攻击的 Shell 脚本,没想到这么...

7555
来自专栏CSDN技术头条

Tomcat 性能优化

Sun 公司创建了第一个 Servlet 容器,即 Java Web Server,但 JWS 只是为了演示 Servlet 的相应功能,所以其性能很不稳定。与...

1373
来自专栏Zchannel

搭建一个属于自己 可多平台同步的私有云盘 —— Seafile

5394
来自专栏Java后端技术栈

一文带你详解了解Tomcat的Server配置!

Tomcat隶属于Apache基金会,是开源的轻量级Web应用服务器,使用非常广泛。server.xml是Tomcat中最重要的配置文件,server.xml的...

1072

扫码关注云+社区

领取腾讯云代金券