tomcat静态资源缓存
1. Tomcat如何设置资源过期时间
以下是设置session时间的3个方法:
1. 在tomcat——>conf——>servler.xml文件中定义:
<Context path="/test" docBase="/test"
defaultSessionTimeOut="3600" isWARExpanded="true"
isWARValidated="false" isInvokerEnabled="true"
isWorkDirPersistent="false"/>
defaultSessionTimeOut="3600"
2. 项目所在目录下的web.xml中定义:
<session-config>
<session-timeout>20</session-timeout>
</session-config>
3. 在程序中定义:
session.setMaxInactiveInterval(30*60);
设置单位为秒,设置为-1永不过期。
2. Tomcat服务器如何清理缓存
打开tomcat服务安装目录,可以看到所有的相关文件目录

3. 什么是Tomcat的缓存文件
Tomcat的缓存文件就是指JSP文件编译后的class和java文件。
虚拟机无法直接执行JSP文件,首先需要把.jsp编译为.java,然后再编译为.class。这个过程是应用服务器自动完成的,不需要人工干预。tomcat用于存放这些文件的地方就是work目录。有时你修改了jsp文件但页面没有任何变化,有可能是jsp文件虽然更改但tomcat没有及时编译。这是只需要清掉work目录中的相应内容,tomcat发现对应的.class没有了,就会从新编译。
4. 静态资源更换后,需要重启tomcat吗
几乎都不用
JS和html和图片等在tomcat里叫静态文件,是直接下载出来渲染出来的,静态文件变更了,那下次请求就是变更后的文件了, 不过浏览器会存在缓存静态文件的情况, 这时候就需要强制刷新网页了。
对于缓存, 有几种方式:
1, 服务器在用静态文件的时候加时间戳,可以取到最新文件,不过耗资源
2, 加静态文件版本号, 更新静态文件的时候更新版本号
5. nginx+tomcat 动静态资源怎么部署
对外,nginx是一个服务器,所有的请求都先请求到nginx,然后再由nginx对内网进行请求的分发到tomcat,然后tomcat处理完请求后将数据发送给nginx,然后由nginx发送给用户,整个过程对用户的感觉就是nginx在处理用户请求。
既然这样子,nginx肯定需要进行配置,主要的配置文件是conf文件夹下的nginx.conf,因为我主要是进行了静态与动态分离,所以没有进行静态文件缓存,也没有进行负载均衡的配置。
6. Tomcat 自动清理日志和缓存
(1)在tomcat/conf/logging.properties文件下修改“maxDays”,系统默认是90天,对于高并发大访问量的服务,将保存的天数设置为最短。
(2)将level级别设置成WARNING就可以大量减少日志的输出,一般日志的级别有:
SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value),这里建议设置成“ WARNING”。
在tomcat/conf/server.xml文件中注释掉“localhost_access_log”日志生成
catalina.out与按天的catalina.xxxx.log重复,所以这里直接禁用。
在tomcat/bin/catalina.sh中找到下面位置
修改到dev/null,当路径不存在时,catalina.out日志也就被禁用
即停止tomcat、进入tomcat/work目录下——>执行 rm -rf Catalina 来删除缓存文件——>启动tomcat = OK
7. 如何清除tomcat缓存
用 tomcat 容器,大家可能会发现这样的问题,修改jsp文件后,但用IE打开 依然是以前的Jsp的页面。
出现这种现象的原因主要是tomcat缓存的原因。
解决办法如下:
在jsp文件头加上
其中,第一行的content="0",是表示过期的时间,如果不是0的话,就必须使用GMT的时间格式。第二行表示不用缓存机制。
删除work目录下的缓存文件。
conf/server.xml 文件Context path 中间加上 reloadable="true"
例如:<Context path="" docBase="E:\MYJSP\" debug="0" reloadable="true" />
在tomcat的startup.bat里首部加上批处理命令
rd/s/q "D:\Program Files\tomcat-6.0\work\Catalina
tomcat路径根据自己情况修改.
这样基本可以解决缓存遗留问题。
==========================================
方法1、再当前浏览器,工具里清空一下上网记录(如果你的cookie没那么重要的话,全部选中,清空)。重新打开一个IE浏览器,再打上网址,回车。
如果还不行
方法2、重启tomcat,但是太费时间,有时还不管用。。
方法3、Apache Software Foundation\Tomcat 5.5\work\Catalina\localhost
有一些发布程序的时候编译的jsp的Java类,可都清空该文件夹,也可以只删除跟当前项目相关的类。
方法3,最直接。。。彻底
不过我常用方法1。方法3,要翻那么多文件夹,我会在方法1实在还是不可以的话。才用方法3
=========================================
方法一:
conf/server.xml文件
Context path中间加上reloadable="true"
例如:
方法二:
删除work目录下的缓存文件
可以把Catalina目录删除; 注意:不能把work整个目录删除,不然重启tomcat时,会把conf/web.xml删除掉,这样在启动时,日志会提示:No Default web.xml,且访问页面会显示404错误;
8. 如何清除tomcat缓存
清除tomcat缓存的具体步骤如下:
我们需要准备的材料分别是:电脑、tomcat。
1、首先我们需要点击打开Tomcat安装目录,之后点击打开temp文件夹。

9. 怎样调节tomcat缓存大小
Tomcat有很多方面,我从内存、并发、缓存四个方面介绍优化方法。
一.Tomcat内存优化
Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 JAVA_OPTS 参数。
JAVA_OPTS参数说明
-server 启用jdk 的 server 版;
-Xms java虚拟机初始化时的最小内存;
-Xmx java虚拟机可使用的最大内存;
-XX:PermSize 内存永久保留区域
-XX:MaxPermSize 内存最大永久保留区域
服务器参数配置
现公司服务器内存一般都可以加到最大2G ,所以可以采取以下配置:
JAVA_OPTS='-Xms1024m -Xmx2048m -XX:PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m'
配置完成后可重启Tomcat ,通过以下命令进行查看配置是否生效:
首先查看Tomcat 进程号:
sudo lsof -i:9027
我们可以看到Tomcat 进程号是 12222 。
查看是否配置生效:
sudo jmap – heap 12222
我们可以看到MaxHeapSize 等参数已经生效。、
二.Tomcat并发优化
1.Tomcat连接相关参数
在Tomcat 配置文件 server.xml 中的 <Connector ... /> 配置中
1>参数说明
minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为 10
maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为 75
acceptCount:允许的最大连接数,应大于等于 maxProcessors ,默认值为 100
enableLookups:是否反查域名,取值为: true 或 false 。为了提高处理能力,应设置为 false
connectionTimeout:网络连接超时,单位:毫秒。设置为 0 表示永不超时,这样设置有隐患的。通常可设置为30000 毫秒。
其中和最大连接数相关的参数为maxProcessors 和 acceptCount 。如果要加大并发连接数,应同时加大这两个参数。
web server允许的最大连接数还受制于操作系统的内核参数设置,通常 Windows 是 2000 个左右, Linux 是 1000 个左右。
2>Tomcat中的配置示例
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
minProcessors="100"
maxProcessors="1000"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>
2.调整连接器connector的并发处理能力
1>参数说明
maxThreads 客户请求最大线程数
minSpareThreads Tomcat初始化时创建的 socket 线程数
maxSpareThreads Tomcat连接器的最大空闲 socket 线程数
enableLookups 若设为true, 则支持域名解析,可把 ip 地址解析为主机名
redirectPort 在需要基于安全通道的场合,把客户请求转发到基于SSL 的 redirectPort 端口
acceptAccount 监听端口队列最大数,满了之后客户请求会被拒绝(不能小于maxSpareThreads )
connectionTimeout 连接超时
minProcessors 服务器创建时的最小处理线程数
maxProcessors 服务器同时最大处理线程数
URIEncoding URL统一编码
2>Tomcat中的配置示例
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="1000"
minProcessors="100"
maxProcessors="1000"
enableLookups="false"
URIEncoding="utf-8"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>
3.Tomcat缓存优化
1>参数说明
c ompression 打开压缩功能
compressionMinSize 启用压缩的输出内容大小,这里面默认为2KB
compressableMimeType 压缩类型
connectionTimeout 定义建立客户连接超时的时间. 如果为 -1, 表示不限制建立客户连接的时间
2>Tomcat中的配置示例
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="1000"
minProcessors="100"
maxProcessors="1000"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000"
URIEncoding="utf-8"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>
4.参考配置
1>旧有的配置
参考网络对服务器做过如下配置,拿出来分享下:
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="25"
maxSpareThreads="75"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000"
URIEncoding="utf-8"
acceptCount="200"
redirectPort="8443"
disableUploadTimeout="true" />
后来发现在访问量达到3 百万多的时候出现性能瓶颈。
2>更改后的配置
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="1000"
minProcessors="100"
maxProcessors="1000"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000"
URIEncoding="utf-8"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>
