文档库 最新最全的文档下载
当前位置:文档库 › tomcat优化

tomcat优化

tomcat优化
tomcat优化

隐藏版本信息

为了避免黑客针对某些版本进行攻击,因此我们需要隐藏或者伪装Tomcat 的版本信息。默认Tomcat 的版本信息如下:

针对该信息的显示是由一个jar包控制的,该jar包存放在Tomcat 安装目录下的lib目录下,名称为catalina.jar。

我们可以通过jar xf 命令解压这个jar 包会得到两个目录META-INF 和org ,通过修改org/apache/catalina/util/ServerInfo.properties 文件中的serverinfo 字段来实现来更改我们tomcat的版本信息。

文件信息如下:

cd tomcat/lib

jar xf catalina.jar

cd /usr/local/apache-tomcat-7.0.53/lib

cd org/apache/catalina/util

vim ServerInfo.properties

https://www.wendangku.net/doc/a111552841.html,=nolinux

如果想修改成其它版本号,把这个地方的值改成其它值就行了

修改完毕之后,重启Tomcat即可看到效果!

效果如下:

优化 web.xml

servlet与其它适用于整个Web应用程序设置的配置文件,必须符合servlet规范的标准格式。通过它可以配置你web应用的相关选项,tomcat在启动的时候会读取这个文件,完成你开发的系统的一些初始化操作。

它可以做如下事情:

1、提供基于servlet 的相关配置

2、增加监听器,监控session或在tomcat启动时,加载一些你希望加载的资源。比如创建数据库连接池等等

3、设置session过期时间,tomcat默认是30分钟

4、更改应用的默认网页,常用为index.html/index.jsp等

5、增加过滤器,做一些你希望的过滤操作,比如敏感词汇的过滤

6、增加一些jstl(标准标签库)的定义,方便在jsp中直接includ进来,直接使用这些标签

7、struts,spring或hibernate的一些配置等等

如果没有WEB-INF/web.xml文件,tomcat会输出找不到的消息,但仍然会部署并使用web 应用程序,不过通常最好还是让每一个上线的web应用程序都有一个自己的WEB-INF/web.xml,即使它只用做识别,但这是一个好的习惯。

由于Servlet规范主要是对于web程序员,而非系统管理员使用的。因此,对于运维来讲,更关心的是站点的默认网页、自定义错误页面、禁止列目录等功能。

在正常生产环境中,肯定不会直接由tomcat对公网提供服务,前端肯定放的有apache 或者nginx。因此,针对站点的默认主页和自定义错误页面,我们均在前端的apache或者nginx中做。另外,也可能在项目内的WEB-INF/web.xml中去做定义。

在tomcat新版本中,自动默认已经禁止列目录功能。

下面,列出几种常见功能,在web.xml中的表现形式:

站点默认主页:

自定义错误页面:

定义会话超时时间:

禁止列目录:

优化 server.xml

Tomcat 的主配置文件,该文件中包含很多主要元素,比如Service 、Connector 、Host 等,这些元素都会创建软件"对象"、排序及进程管道中设置的这些元素嵌套方,使我们可以执行过滤、分组等工作。

如果要对改文件做优化,我们需要先了解该文件的结构!

server.xml 的结构图:

该文件描述了如何启动Tomcat Serve

1、maxThreads 连接数限制

maxThreads 是 Tomcat 所能接受最大连接数。一般设置不要超过8000以上,如果你的网站访问量非常大可能使用运行多个Tomcat 实例的方法,即,在一个服务器上启动多个tomcat 然后做负载均衡处理。

这里还需要注意的一点是,tomcat 和 php 不同。php 可以按照cpu 和内存的情况去配置连

接数,上万很正常。而java 还需要注意jvm 的参数配置。如果不注意就会因为jvm参数过小而崩溃。

2、多虚拟主机

强烈建议不要使用Tomcat 的虚拟主机,推荐每个站点使用一个实例。即,可以启动多个Tomcat实例,而不是启动一个Tomcat 里面包含多个虚拟主机。因为Tomcat是多线程,共享内存,任何一个虚拟主机中的应用崩溃,都会影响到所有应用程序。虽然采用多实例的方式会产生过多的开销,但至少保障了应用程序的隔离和安全。

3、压错传输

tomcat作为一个应用服务器,也是支持gzip 压缩功能的。我们可以在server.xml 配置文件中的Connector 节点中配置如下参数,来实现对指定资源类型进行压缩。compression="on" # 打开压缩功能 compressionMinSize="50" # 启用压缩的输出内容大小,默认为2KB

noCompressionUserAgents="gozilla, traviata" # 对于以下的浏览器,不启用压缩compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" # 哪些资源类型需要压缩

提示:

Tomcat 的压缩是在客户端请求服务器对应资源后,从服务器端将资源文件压缩,再输出到客户端,由客户端的浏览器负责解压缩并浏览。相对于普通的浏览过程HTML、CSS、Javascript和Text,它可以节省40% 左右的流量。更为重要的是,它可以对动态生成的,包括CGI、PHP、JSP、ASP、Servlet,SHTML等输出的网页也能进行压缩,压缩效率也很高。但是,压缩会增加Tomcat 的负担,因此最好采用Nginx + Tomcat 或者Apache + Tomcat 方式,将压缩的任务交由Nginx/Apache 去做。

4、管理AJP端口

AJP是为Tomcat 与HTTP 服务器之间通信而定制的协议,能提供较高的通信速度和效率。如果tomcat前端放的是apache的时候,会使用到AJP这个连接器。由于我们公司前端是由nginx做的反向代理,因此不使用此连接器,因此需要注销掉该连接器。

5、更改关闭Tomcat 实例的指令

server.xml中定义了可以直接关闭Tomcat 实例的管理端口。我们通过telnet 连接上该端口之后,输入SHUTDOWN (此为默认关闭指令)即可关闭Tomcat 实例(注意,此时虽然实例关闭了,但是进程还是存在的)。由于默认关闭Tomcat 的端口和指令都很简单。默认端口为8005,指令为SHUTDOWN 。因此我们需要将关闭指令修改复杂一点。

当然,在新版的Tomcat 中该端口仅监听在127.0.0.1上,因此大家也不必担心。除非黑客登陆到tomcat本机去执行关闭操作。

修改实例:

6、更改Tomcat 的服务监听端口

一般公司的Tomcat 都是放在内网的,因此我们针对Tomcat 服务的监听地址都是内网地址。

修改实例:

7、关闭war自动部署

默认 Tomcat 是开启了对war包的热部署的。为了防止被植入木马等恶意程序,因此我们要关闭自动部署。

修改实例:

unpackWARs="false" autoDeploy="false">

禁用 Tomcat 管理页面

一般线上是不使用Tomcat 默认提供的管理页面的,因此都会在初始化的时候就把这些页面删掉。这些页面是存放在Tomcat 安装目录下的webapps目录下的。

我们只需要删除该目录下的所有文件即可。

当然,还有涉及管理页面的2个配置文件host-manager.xml 和manager.xml 也需要一并删掉。这两个文件存放在Tomcat 安装目录下的conf/Catalina/localhost目录下。

linux内核的优化

https://www.wendangku.net/doc/a111552841.html,dev_max_backlog = 32768

net.core.somaxconn = 32768

net.core.wmem_default = 8388608

net.core.rmem_default = 8388608

net.core.rmem_max = 16777216

net.core.wmem_max = 16777216

net.ipv4.ip_local_port_range = 1024 65000

net.ipv4.route.gc_timeout = 100

net.ipv4.tcp_fin_timeout = 30

net.ipv4.tcp_keepalive_time = 1200

net.ipv4.tcp_timestamps = 0

net.ipv4.tcp_synack_retries = 2

net.ipv4.tcp_syn_retries = 2

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_mem = 94500000 915000000 927000000

net.ipv4.tcp_max_orphans = 3276800

net.ipv4.tcp_max_syn_backlog = 65535

保存退出,执行sysctl -p生效。

Sysctl -p (至少两次建议三次)

服务器资源配置优化

使用脚本执行系统初始化的时候对系统参数进行优化

配置参数优化

tomcat中如何禁止和允许主机或IP地址访问

...

allow="*https://www.wendangku.net/doc/a111552841.html,,https://www.wendangku.net/doc/a111552841.html,"/>

deny="192.168.1.*"/>

...

编辑tomcat安装目录下的conf目录下的server.xml文件,

enableLookups:是否反查域名,默认值为true。为了提高处理能力,应配置为false

在tomcat配置文件server.xml中的配置中,和连接数相关的参数有:maxThreads="150" #表示最多同时处理150个连接线程请求。这个值表示Tomcat可创建最大的线程数。默认值200。

minSpareThreads="25" 表示即使没有人使用也开这么多空线程等待。maxSpareThreads="75" 表示如果最多可以空75个线程,例如某时刻有80人访问,之后没有人访问了,则tomcat不会保留80个空线程,而是关闭5个空的。(一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。默认值50)

acceptCount="100" 当同时连接的人数达到maxThreads时,还可以接收排队的连接数量,超过这个连接的则直接返回拒绝连接。(默认值100 )

其中和最大连接数相关的参数为maxThreads和acceptCount。如果要加大并发连接数,应同时加大这两个参数。

web server允许的最大连接数还受制于操作系统内核参数设置,通常Windows是2000个左右,Linux是1000个左右。

当然这些值都不是越大越好,需要根据实际情况来设定。可以基于测试的基础上来不断的调优分析。

Tomcat 并发参数优化

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

bufferSize:输入流缓冲大小,默认值2048 bytes。

compression:压缩传输,取值on/off/force,默认值off。

connnectionTimeout:网络连接超时,默认值60000,单位:毫秒。配置为0表示永不超时,这样配置有隐患的。通常可配置为30000毫秒。

maxKeepAliveRequests:nginx动态的转给tomcat,nginx是不能keepalive的,而tomcat端

默认开启了keepalive,会等待keepalive的timeout,默认不设置就是使用connectionTimeout。所以必须设置tomcat的超时时间,并关闭tomcat的keepalive。否则会产生大量tomcat的socket timewait。

vim /tomcat/conf/server.xml

port="8080" protocol="HTTP/1.1"

connectionTimeout="30000" maxKeepAliveRequests="1"

redirectPort="8443" bufferSize="8192" sockedBuffer="65536" acceptCount="200"/>

其中maxKeepAliveRequests="1" 表示每个连接只响应一次就关闭,这样就不会

等待timeout了。

Catalina.sh JVM参数优化

linux 下编辑tomcat安装目录下的bin目录下的catalina.sh文件,windows下为catalina.bat Catalina.sh添加如下内容:

CATALINA_OPTS="$CATALINA_OPTS–Xms 4000M –Xmx 4000M –Xmn 1000M -

XX:SurvivorRatio=4-XX:+UseConcMarkSweepGC -

XX:CMSInitiatingOccupancyFraction=82-DLOCALE=UTF-16LE -DRAMDISK=/-

DUSE_RAM_DISK=ture -DRAM_DISK=true"

- Xms为tomcat启动初始内存,一般为服务器开机后可用空闲内存减去100M

- Xmx为tomcat最大占用内存,一般为服务器开机后可用空闲内存减去50M

一般说来,您应该使用物理内存的80% 作为堆大小。Tomcat默认能够使用的内存为

128MB,在较大型的应用项目中,这点内存是不够的,需要调大。

说明:以上两个参数关系到tomcat承受的访问性能,但也要根据服务器实际内存情况设定。

为了提升整个网站的性能,还需要在tomcat前面架设nginx 或者apache反向代理服务器,用以提高用户高速访问。

配置完成后可重启Tomcat,通过以下命令进行查看配置是否生效:

首先查看Tomcat进程号:

Lsof -i :8080

查看是否配置生效:

Jmap -heap PID

Attaching to process ID 11867, please wait...

Debugger attached successfully.

Server compiler detected.

JVM version is 24.65-b04

using thread-local object allocation.

Parallel GC with 4 thread(s)

Heap Configuration:

MinHeapFreeRatio = 0

MaxHeapFreeRatio = 100

MaxHeapSize = 4294967296 (4096.0MB)

NewSize = 1073741824 (1024.0MB)

MaxNewSize = 1073741824 (1024.0MB)

OldSize = 5439488 (5.1875MB)

NewRatio = 2

SurvivorRatio = 8

PermSize = 268435456 (256.0MB)

MaxPermSize = 536870912 (512.0MB)

G1HeapRegionSize = 0 (0.0MB)

Heap Usage:

PS Young Generation

Eden Space:

capacity = 1034944512 (987.0MB)

used = 421761112 (402.22274017333984MB)

free = 613183400 (584.7772598266602MB)

40.75205067612359% used

From Space:

capacity = 19398656 (18.5MB)

used = 18513920 (17.65625MB)

free = 884736 (0.84375MB)

95.4391891891892% used

To Space:

capacity = 19398656 (18.5MB)

used = 0 (0.0MB)

free = 19398656 (18.5MB)

0.0% used

PS Old Generation

capacity = 1073741824 (1024.0MB)

used = 717480536 (684.2427597045898MB) free = 356261288 (339.75724029541016MB) 66.82058200240135% used

PS Perm Generation

capacity = 268435456 (256.0MB)

used = 262707240 (250.53714752197266MB) free = 5728216 (5.462852478027344MB)

97.86607325077057% used

72392 interned Strings occupying 7607216 bytes.

在Win7上用Tomcat发布网站

首先,在发布网站之前,这个网站是已经做好了的。 这里只是介绍了一下载发布过程中可能遇到的问题以及解决的方法。 首先是添加Tomcat的虚拟主机 打开tomcat安装目录下conf/server.xml这个文件。在server.xml文档中找到 接着在上面添加以下内容: 以上的内容就是在Tomcat的webapps目录下新建一个qq文件夹作为https://www.wendangku.net/doc/a111552841.html,这个域名的主目录 测试: windows用户打开C:\WINDOWS\system32\drivers\etc的hosts这个文件, linux用户打开/ect的hosts文件或者vim /ect/hosts 修改内容如下 127.0.0.1 localhost 127.0.0.1 https://www.wendangku.net/doc/a111552841.html, 接下来是进行Tomcat的首页设置 因为这个网站的首页是login.html,不是通常的index.html。所以需要修改Tomcat的首页。 打开tomcat安装目录下conf/web.xml这个文件 修改其中的下列内容 index.html index.htm index.jsp

Tomcat的配置文件server.xml 中各个域的说明及相关配置

Tomcat的配置文件server.xml 中各个域的说明及相关配置 2007-04-20 12:42 元素 它代表整个容器,是Tomcat实例的顶层元素.由org.apache.catalina.Server接口来定义.它包含一个元素.并且它不能做为任何元素的子元素. 1>className指定实现org.apache.catalina.Server接口的类.默认值为 org.apache.catalina.core.StandardServer 2>port指定Tomcat监听shutdown命令端口.终止服务器运行时,必须在Tomcat服务器所在的机器上发出shutdown命令.该属性是必须的. 3>shutdown指定终止Tomcat服务器运行时,发给Tomcat服务器的shutdown监听端口的字符串.该属性必须设置 元素 该元素由org.apache.catalina.Service接口定义,它包含一个元素,以及一个或多个,这些Connector元素共享用同一个Engine元素 第一个处理所有直接由Tomcat服务器接收的web客户请求. 第二个处理所有由Apahce服务器转发过来的Web客户请求 1>className 指定实现org.apahce.catalina.Service接口的类.默认为 org.apahce.catalina.core.StandardService 2>name定义Service的名字 元素 每个Service元素只能有一个Engine元素.元素处理在同一个中所有元素接收到的客户请求.由org.apahce.catalina.Engine接口定义. 1>className指定实现Engine接口的类,默认值为StandardEngine 2>defaultHost指定处理客户的默认主机名,在中的子元素中必须定义这一主机 3>name定义Engine的名字 在可以包含如下元素, , , 元素 它由Host接口定义.一个Engine元素可以包含多个元素.每个的元素定义了一个虚拟主机.它包含了一个或多个Web应用.

tomcat7.0.2配置

tomcat7.0.2配置 首先,当然了,先配置jdk: 我的电脑--->属性--->高级系统设置----->环境变量 接下来进行配置:(我的jdk安装在D:\java\中) 系统变量-----> 新建{ 变量名: JAVA_HOME 值: D:\java\jdk1.6.0_21 } 新建{ 变量名: CLASSPATH 值: D:\java\jdk1.6.0_21\bin } 编辑path: 在变量值最后追加:{ D:\Java\jdk1.6.0_21\bin; } 单击确定。 那接下来配置tomcat7.0.2的环境(我的tomcat安装在d:\tomcat下):我的电脑--->属性--->高级系统设置----->环境变量----> 新建{ 变量名: CATALINA_BASE 值:D:\tomcat } 新建{ 名称:CATALINA_TMPDIR 值:D:\tomcat\temp } 变量名:CATALINA_HOME 值:D:\tomcat } 编辑path: 在变量值最后追加{ D:\tomcat\bin } 点击确定. 现在,tomcat7.0.2要运行的环境变量已经配置好了.然后启动tomcat 你可以点击tomcat\bin\startup启动tomcat也可以在命令提示符中启动: c:\user\冯延路\d:

D:\>tomcat\bin\startup 启动 打开浏览器,输入: http:\\localhost:8080\ 那接下来要设置manager: 打开tomcat/conf/tomcat-users.xml 文件,添加如下代码:(这里,我设置了我的账号为"admin",密码为"123") 自此,设置基本完成. 如果要与Eclipse配合使用,那还得进行一些配置,具体步骤如下: window(窗口)-->preferences-->server---->runtime environment---->add---->Apache---Apache Tomcat v7-->next--->-tomcat installation directory 浏览找到tomcat的安装目录(对于我,是D:\tomcat),点击确定。完成。

IDEA 2020 配置Tomcat服务器的详细步骤

IDEA 2020 配置Tomcat服务器的详细步骤 这篇文章主要介绍了IDEA 2020 配置Tomcat服务器的详细教程,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 IDEA 2020 配置Tomcat的步骤如下所示: 第一步下载Tomcat 官网链接:https://www.wendangku.net/doc/a111552841.html,/ 选择download,找到自己所要的版本,下载对应版本的Tomcat。 跟我之前的文章一样,我依旧推荐下载免安装的压缩包。 有zip和exe两种格式的,zip(64-bit Windows zip(pgp,md5,sha1))是免安装版的,exe(32-bit/64-bit Windows Serv ice installer(pgp,md5,sha1))是安装版。同时观察自己的电脑是64位系统还是32位系统。 此处选择下载zip版; 第二步体验Tomcat 将压缩包下载下来并解压到指定路径后,在bin目录下有若干个bat文件 startup.bat :点击启动Tomcat;

shutdown.bat:关闭Tomcat。 这里我们点击 startup.bat 来启动Tomcat 启动Tomcat后,会出现一个终端窗口,不要关闭它 打开浏览器,键入 http://localhost:8080 进入如下页面则表示安装成功: 第三步 Tomcat环境变量配置 右击此电脑 -> 属性 -> 高级系统设置 -> 环境变量

在”系统变量“中添加系统变量CATALINA_BASE,CATALINA_HOME; 变量名:CATALINA_BASE 变量值:E:\JavaTools\apache-tomcat-9.0.37-windows-x64\apache-tomcat-9.0.37 //Tomcat安装目录 在”系统变量“中添加系统变量,CATALINA_HOME; 变量名:CATALINA_HOME 变量值:E:\JavaTools\apache-tomcat-9.0.37-windows-x64\apache-tomcat-9.0.37 //Tomcat安装目录 修改ClassPath和Path的变量值。 变量名:CLASSPATH 变量值:%CATALINA_HOME%\lib\servlet-api.jar; (注意加的时候在原变量值后加英文“;”)

Tomcat服务器性能调优几个方面

Tomcat性能调优几个方面 一、操作系统调优 对于操作系统优化来说,是尽可能的增大可使用的内存容量、提高CPU的频率,保证文件系统的读写速率等。经过压力测试验证,在并发连接很多的情况下,CPU的处理能力越强,系统运行速度越快。。 【适用场景】任何项目。 二、Java虚拟机调优 应该选择SUN的JVM,在满足项目需要的前提下,尽量选用版本较高的JVM,一般来说高版本产品在速度和效率上比低版本会有改进。 JDK1.4比JDK1.3性能提高了近10%-20%,JDK1.5比JDK1.4性能提高25%-75%。因此对性能要求较高的情况推荐使用 JDK1.6。 【适用场景】任何项目。 三、Apache集成Tomcat Web服务器专门处理HTTP请求,应用服务器是通过很多协议为应用提供商业逻辑。虽然Tomcat也可以作web服务器,但其处理静态html的速度比不上Apache,且其作为web服务器的功能远不如Apache,因此把Apache和Tomcat集成起来,将html和Jsp的功能部分进行明确分工,让Tomcat只处理Jsp部分,其他的由Apache,IIS等web服务器去处理,由此大大提高Tomcat的运行效率。 如果一个项目中大量使用了静态页面、大量的图片等,并有有较大的访问量,推荐使用Apache集成Tomcat的方式来提高系统的整体性能。 Apache和Tomcat的整合有三种方式,分别是JK、http_proxy和ajp_proxy.其中JK方式是最常见的方式,JK本身有两个版本分别是1和2,目前1最新版本是1.2.8,而版本2早已经废弃了。http_proxy是利用Apache自带的mod_proxy 模块使用代理技术来连接Tomcat。Ajp_proxy连接方式其实跟http_proxy方式一样,都是由mod_proxy所提供的功能。只需要把配置中的http://换成ajp://,同时连接的是Tomcat的AJP Connector所在的端口。 相对于JK的连接方式,后两种在配置上比较简单的,灵活性方面也一点都不逊色。但就稳定性而言不像JK这样久经考验,所以建议采用JK的连接方式。Apache+JK+Tomcat配置:

Tomcat网站发布配置方案详细说明

Tomcat网站发布配置方案详细说明 修改端口、修改默认发布目录、多域名绑定 一、修改发布端口号为80(Tomcat默认为8080) 打开配置文件(我的如下:E:\J2EEServer\Tomcat 6.0\conf\server.xml),找到: 代码如下: 修改后: 其实这里就是把port:8080,修改成port:80就可以了,其他的参数不变。这样客户机在访问服务器时直接输入IP或域名就可以了。 二、修改tomcat的字符集 大家在写程序中应该都遇到过中文乱码的问题,除了保证页面、数据库的字符集保持一致外还有一点需要注意,就是tamcat的字符集。有时从头到尾的检查程序,发现程序一切正常,可就是有乱码,看看Tomcat的字符集吧!找到E:\Tomcat 6.0\conf\server.xml: 代码如下:

Tomcat完整教程

第一章 Tomcat概述 一、Tomcat简介 TOMCAT是APACHE JAKARTA软件组织的一个子项目,TOMCAT是一个JSP/SERVLET容器,它是在SUN公司的JSWDK(JAVA SERVER WEB DEVELOPMENT KIT)基础上发展起来的一个JSP和SERVLET规范的标准实现,使用TOMCAT可以体验JSP和SERVLET的最新规范。经过多年的发展,TOMCAT不仅是JSP和SERVLET规范的标准实现,而且具备了很多商业JAVA SERVLET容器的特性,并被一些企业用于商业用途。 1、Tomcat Tomcat在严格意义上并不是一个真正的应用服务器,它只是一个可以支持运行Serlvet/JSP 的Web容器,不过Tomcat也扩展了一些应用服务器的功能,如JNDI,数据库连接池,用户事务处理等等。Tomcat 是一种具有JSP环境的Servlet容器。Servlet容器是代替用户管理和调用Servlet的运行时外壳。 1.1 SERVLET容器 负责处理客户请求。当客户请求来到时,SERVLET容器获取请求,然后调用某个SERVLET,并把SERVLET的执行结果返回给客户。 当客户请求某个资源时,SERVLET容器使用SERVLETREQUEST对象把客户的请求信息封装起来,然后调用JAVA SERVLET API中定义的SERVLET的一些生命周期方法,完成SERVLET的执行,接着把SERVLET执行的要返回给客户的结果封装到SERVLETRESPONSE对象中,最后SERVLET容器把客户的请求发送给客户,完成为客户的一次服务过程。 1.2 TOMCAT的工作模式 1.2.1 独立的SERVLET容器 TOMCAT的默认工作模式,作为独立的SERVLET容器,是内置在WEB服务器中的一部分,是指使用基于JAVA的WEB服务器的情形。 其他两种方式是TOMCAT与其他服务器集成的方式: 1.2.2 进程内的SERVLET容器 SERVLET容器作为WEB服务器的插件和JAVA容器的实现。WEB服务器的插件在内部地址空间打

3TOMCAT配置优化(完整版)

Tomcat性能调优及配置技巧 一、Tomcat设置Gzip,减少网络流量 (2) 二、TOMCAT性能参数调优 (2) 环境:Windows2003、jdk1.6以上、tomcat6.0以上 (2) 设置tomcat的java虚拟机参数catalina.sh/bat (2) 设置tomcat服务器参数server.xml设置socket、线程、压缩传输参数 (2) 设置tomcat数据库连接池参数context.xml设置数据库连接池 (2) 设置操作系统tcpip参数,regedit/修改windows的tcpip参数 (3) 三、解决rar、excel格式文件在下载时直接以乱码打开 (3) 四、开启tomcat的SSI功能(用来支持shtml) (4) 五、修改网站访问端口为80 (4) 六、解决中文乱码问题 (4) 七、解决中文文件无法正常下载 (4) 八、不让tomcat列出某目录下的文件 (5) 九、查看现有tomcat的内存大小情况 (5) 十、解决在linux下静态化有些符号出现乱码 (6) 不让tomcat列出某目录下的文件FusionCharts用法详解......................错误!未定义书签。

一、Tomcat设置Gzip,减少网络流量 二、TOMCAT性能参数调优 环境:Windows2003、jdk1.6以上、tomcat6.0以上 设置tomcat的java虚拟机参数catalina.sh/bat JAV A_OPTS="$JAV A_OPTS-server-Xms512m-XX:NewSize=256M-XX:MaxNewSize=512M -XX:MaxPermSize=128m-Xrs-Xss128k-Xloggc:gc.txt-XX:+PrintGC-XX:+PrintGCDetails -XX:+PrintGCTimeStamps-XX:-HeapDumpOnOutOfMemoryError" 设置tomcat服务器参数server.xml设置socket、线程、压缩传输参数 设置tomcat数据库连接池参数context.xml设置数据库连接池

Tomcat-安装手册

安装报表运行环境(TOMCAT) 首先检查服务器是否已经安装了 TOMCAT 运行环境,如果已经安装了就不需要在安装了,就滤过此步骤安装。没有安装的情况下就继续安装。 在安装光盘中把 apachetomcat6.exe 文件复制到 C 盘目录下,双击“apachetomcat6.exe”文件,进入安装页面,如图: 在页面中点击“Next”按钮,弹出安装许可协议页面,这里点击“I Agree”按钮同意许可协议安装,如图:

在同意许可协议后,页面转向页面安装内容选项卡,这里按默认安装即可,不用选择直接点击“Next”按钮就可以了,如图: 在点击“Next”按钮后页面转向安装目录选择页面,点击“Brower”

按钮,选择安装路径,这里我们选择和 JDK 安装在同一个目录下,如图: 设置好安装目录后,点击“Next”按钮,页面会转向管理设置页面,页面中安装需要的端口,管理员用户名和密码设置页面,端口默认的情况下是 8080 端口,要是8080 端口被占用了就改一个端口,这里我们选择默认的 8080 端口,用户名使用默认的管理员密码 Admin ,密码可以不设置,要是设置了记住一定要记住和告诉客户管理员。如图:

端口、用户名和密码都设置好后点击“Next”按钮,进入选择 JRE 运行目录,一般情况下系统会自动检测,自动寻找运行 JRE 安装目录。如图:

设置好 JRE 运行目录后,这时就可以点击“Install”按钮就进行安装 Tomcat 安装页面,安装完成后会转向安装完成页面,点击“Finish”按钮关闭页面,如图: 安装完成 Tomcat 后进入设置环境变量页面,在“我的电脑”点击鼠标右键,在弹出的页面中选择“属性”选项卡。 之后再弹出的页面中选择“高级”选项卡。如图:

如何优化提高tomcat启动速度

如何优化提高tomcat启动速度 在tomcat启动的时候,我们可以做一些优化设置来使得tomcat的启动更快速,下面是一些常见的优化加速启动的方法建议(以tomcat-7.+为例说明)。 1、 Jars包 1.1、将一些不必要的jar包去掉,当tomcat启动加载jar包的时候,会去搜寻每个jar包里的class文件,这些都会耗费一些时间,如果你把不必要的jar 包去掉了,很显然会节省时间。 1.2、你可以将一些与TLD files、注解、网络碎片无关的jar包加入到属性 tomcat.util.scan.DefaultJarScanner.jarsToSkip的值中,这可以在 conf/catalina.properties中进行设置。 2、缓存 你可以在bin/catalina.sh中设置jvm所能使用到的缓存大小,如下:JAVA_OPTS=?-Xms1024m -Xmx1024m? 3、配置文件

Tomcat的配置比如server.xml是xml文件,而xml的解析也是要花时间的,如果我们能将xml配置文件尽可能地弄得简洁一些,比如去掉一些没有用到的节点,这也有助于减少启动的时间,虽然这个节省的时间看来很少。 4、应用程序 4.1、确保你程序在启动的时候没有一些处理很耗时的地方。 4.2、删除掉tomcat自带的目录webapps及下面的所有内容,不然的话每次启动的时候都会加载这些自带的例子。 4.3、修改WEB-INF/web.xml文件,在默认的情况下中的属性metadata-complete的值为false,也就是这样:,这种情况下,tomcat在启动时会去自动扫描是否有注解及网络碎片,如果你不想tomcat这样做,你可以将metadata-complete的值设为true。 5、并行启动多个应用程序 默认情况下,假设在一个tomcat下你有多个应用,那么启动的时候,这些应用程序都是依次启动的,除非所有应用全部启动完毕,tomcat才会启动完成,但从Tomcat 7.0.23+开始,你可以配置多个应用程序并行启动了!你可以通

tomcat配置信息

tomcat6.0配置 第一步:下载j2sdk和tomcat:到sun官方站点 最新的jdk为1.6.04,tomcat为6.0,建议jdk1.4以上,tomcat4.0以上 第二步:安装和配置你的j2sdk和tomcat:执行j2sdk和tomcat的安装程序,然后设置按照路径进 行安装即可。 1.安装j2sdk以后,需要配置一下环境变量,在我的电脑->属性->高级->环境变量->系统变量中添加 以下环境变量(假定你的j2sdk安装在c:\j2sdk1.4.2): JAVA_HOME=c:\j2sdk1.4.2 classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(.;一定不能少,因为它代表 当前路径) path=%JAVA_HOME%\bin 接着可以写一个简单的java程序来测试J2SDK是否已安装成功: 将上面的这段程序保存为文件名为Test.java的文件。 然后打开命令提示符窗口,cd到你的Test.java所在目录,然后键入下面的命令 javac Test.java java Test 此时如果看到打印出来This is a test program.的话说明安装成功了,如果没有打印出这句话,你需 要仔细检查一下你的配置情况。 2.安装Tomcat后,在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量(假定你的 tomcat安装在c:\tomcat): CATALINA_HOME:c:\tomcat CATALINA_BASE:c:\tomcat TOMCAT_HOME: C:\Tomcat 然后修改环境变量中的classpath,把tomat安装目录下的common\lib下的servlet.jar追加到 classpath中去,修改后的classpath如下:

有关tomcat服务器的并发设置与优化

有关tomcat6服务器的并发设置与优化 tomcat的server.xml 配置文件说明: server.xml 配置 参数说明: conn ecti on Timeout 网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可 设置为30000毫秒。 keepAliveTimeout 长连接最大保持时间(毫秒)。此处为15秒。 maxKeepAliveRequests 最大长连接个数(1表示禁用,-1表示不限制个数,默认100个。一般设置在100~200 之间) maxHttpHeaderSize http请求头信息的最大程度,超过此长度的部分不予处理。一般8K

URIE ncodi ng 指定Tomcat 容器的URL 编码格式。acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理,默认为10 个。 disableUploadTimeout 上传时是否使用超时机制enableLookups 是否反查域名,取值为:true 或false 。为了提高处理能力,应设置为false maxSpareThreads 最大空闲连接数,一旦创建的线程超过这个值,Tomcat 就会关闭不再需要的socket 线程The default value is 50. maxThreads 最多同时处理的连接数,Tomcat 使用线程来处理接收的每个请求。这个值表示 Tomcat 可创建的最大的线程数。minSpareThreads 最小空闲线程数,Tomcat 初始化时创建的线程数. minProcessors 最小空闲连接线程数,用于提高系统处理性能,默认值为10 。maxProcessors 最大连接线程数,即:并发处理的最大请求数,默认值为75 提高Tomcat 的并发能力一些方法 1、Apache + Tomcat 结合起来用Apache 负责静态页面,Tomcat 负责动态页面,同时减少connectionTimeout 的时间,以应对并发量大线程回收来不及的情况。 2、压力过大的问题,可以做负载均衡,一个TOMCAT 无论如何也不可能担当如此多的线程负载,而且JVM 过大,其内存管理成本将显著加大。2G 的内存,做3-4 个TOMCAT 实例( 512RAM*4 ),更为科学合理。 3、数据库连接池,不少人,都推荐使用C3P0 ,能提高访问数据库的并发性能好几倍。(有博文称使用tomcat 自带的jdbc-pool 更好,还没试过) 4、采用Tomcat 集群可以最大程度的发挥服务器的性能,可以在配置较高的服务器上部署多个Tomcat ,也可以在多台服务器上分别部署Tomcat ,Apache 和Tomcat 整合的

tomcat负载均衡配置

实用标准文案 Tomcat: (一)tomcat负载均衡配置安装环境说明 (1)服务器有4台,一台安装apache,三台安装tomcat (2)apache2.0.55?tomcat5.5.15?jk2.0.4?jdk1.5.6或jdk1.4.2 (3)ip配置,一台安装apache的ip为192.168.0.88,三台安装tomcat的服务器ip分别为192.168.0.1/2/4 (二)tomcat负载均衡配置安装过程 (1)在三台要安装tomcat的服务器上先安装jdk (2)配置jdk的安装路径,在环境变量path中加入jdk的bin路径,新建环境变量JAVA_HOME指向jdk的安装路径 (3)在三台要安装tomcat的服务器上分别安装tomcat,调试三个tomcat到能够正常启动 (4)tomcat的默认WEB服务端口是8080,默认的模式是单独服务,我的三个tomcat的WEB服务端口修改为7080/8888/9999 修改位置为tomcat的安装目录下的conf/server.xml 修改前的配置为 1. 修改后的配置为 1. 瑜畲履4. disableUploadTimeout=???connectionTimeout= 精彩文档. 实用标准文案 依次修改每个tomcat的监听端口(7080/8888/9999) (5)分别测试每个tomcat的启动是否正常 http://192.168.0.1:7080 http://192.168.0.2:8888 http://192.168.0.4:9999

Tomcat6优化

Tomcat6 Optimize 实验条件 数据库服务器 操作系统信息 SYSTEM : Linux flume5 2.6.18-164.el5 #1 SMP Thu Sep 3 03:28:30 EDT 2009 x86_64 GNU/Linux 硬件配置信息 CPU : 4CPU Intel(R) Xeon(R) CPU X5650 @ 2.67GHz Cache size : 12288 KB MEMORY : 4G 数据库服务器信息 MySql版本:Server version: 5.5.24-log MySQL Community Server (GPL) 备注:修改默认MySql服务器连接限制100为1024 应用服务器 操作系统信息 SYSTEM : Linux flume5 2.6.18-164.el5 #1 SMP Thu Sep 3 03:28:30 EDT 2009 x86_64 GNU/Linux 硬件配置信息 CPU : 4CPU Intel(R) Xeon(R) CPU X5650 @ 2.67GHz Cache size : 12288 KB MEMORY : 4G 中间件服务器信息 Tomcat版本:apache-tomcat-6.0.32 备注:系统线程数目没有限制(NPTL内核) 以上数据因为服务器公用原因,并不纯净,但基本能保证内存空闲在2.5G上,CPU使用也足够空闲1内存

1.1概念 Tomcat内存优化其实也就是对JVM内存进行设置 1.2配置位置 配置位置:%TOMCAT_HOME%/bin下, Window:catalina.bat Linux/Unix:catalina.sh 首行添加:JAVA_OPTS=-Xms256m –Xmx256m … 注意:Linux环境下:JAVA_OPTS=”-Xms256m –Xmx256m …”,即参数要加引号,不然不起作用1.3内存参数配置 以下值大部分情况为默认值,应根据具体服务器硬件配置及业务特性来配置 -Xverify:none关闭大部分类验证措施,以缩短虚拟机类加载时间 -Xms16m堆内存初始值(M>1G ? 1G/64 : M/64) -Xmx256m堆内存最大值(M>1G ? 1G/4 : M/4) -Xmn4m新生代初始值(迸发收集器下通过该值来设置,该设置优先级高于-XX:NewRatio)-XX:NewRatio=2 老年代与新生代比值(迸发收集器下默认=7) -XX:SurvivorRatio=8 Eden区与Survivro区的比值 -XX:PermSize=12m永久代初始值 -XX:MaxPermSize=64m永久代最大值 -Xss1024k 栈内存大小 -XX:MaxTenuringThreshold=15由年轻代到年老带的GC阀值(迸发收集器下默认=4) -XX:+UseFastAccessorMethods get,set 方法转成本地代码 1.4垃圾收集器参数配置 响应时间优先(根据CPU数目及应用具体设置,一般需要CPU>4) -XX:+UseParNewGC 设置新生代多线程串行收集器,可以不设置 -XX:+UseConcMarkSweepGC 设置老年代迸发收集器,

tomcat安装与配置

第1章Tomcat的安装与配置 Tomcat可以运行Servlet和JSP,是一个小型的轻量级应用服务器,它性能稳定、扩展性好、源码开放,是开发中小型Web应用系统的首选。本章首先介绍Tomcat服务器特点、层次结构、应用处理流程及发展史,然后讲述Tomcat的安装、设置和测试,接着介绍Tomcat 目录结构、常用配置平台、控制和管理程序等,最后设计一个不需数据库支持的简单聊天室。 1.1 Tomcat简介 Tomcat是Sun的JSWDK(Java Server Web Development Kit)中的Servlet容器,属于Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司和个人共同开发而成。Tomcat既是一个开放源码、免费支持JSP和Servlet技术的容器,同时又是一个Web服务器软件,受到了Sun公司的大力推荐和支持。因此,Servlet和JSP的最新规范都可以在Tomcat的新版本中得到实现。 与传统桌面应用程序不同,Tomcat中的应用程序是一个WAR(Web Archive)文件,它是许多文件构成的一个压缩包,包中的文件按照一定目录结构来组织,不同目录中的文件也具有不同的功能。部署应用程序时,只需要把WAR文件放到Tomcat的webapp目录下,Tomcat会自动检测和解压该文件。JSP文件第一次执行时,要先由Tomcat将其转化为Servlet文件,然后编译,所以速度会慢一些,但后继执行时速度会很快。 Tomcat既是一个Servlet容器,又是一个独立运行的服务器,像IIS、Apache等Web 服务器一样,具有处理HTML页面的功能。但它处理静态HTML文件的能力并不是太强,所以一般都是把它当作JSP/Servlet引擎,通过适配器(Adapter)与其他Web服务器软件(如Apache)配合使用。此外,Tomcat还可与其他一些软件集成起来实现更多功能,例如,与JBoss集成起来开发EJB、与OpenJMS集成起来开发JMS应用、与Cocoon(Apache的另外一个项目)集成起来开发基于XML的应用等。 Tomcat是一个小型的轻量级应用服务器,运行时占用系统资源小、扩展性好、支持负载平衡与邮件服务等开发应用系统中的常用功能,并且不断改进和完善。Tomcat适用于中小型系统和并发访问用户不太多的场合,是开发和调试JSP程序的首选。先进的技术、稳定的性能、源码开放和免费获取的机制,使得Tomcat深受Java爱好者的喜爱并得到了许多软件开发商的认可,成为目前相当流行的Web应用服务器。 1.1.1 Servlet简述 谈起Tomcat,就不能不说Servlet,如果没有Servlet的应用需求,就没有Tomcat的产

tomcat web.xml配置详解

web.xml元素介绍 每一个站的WEB-INF下都有一个web.xml的设定文件,它提供了我们站台的配置设定. web.xml定义: .站台的名称和说明 .针对环境参数(Context)做初始化工作 .Servlet的名称和映射 .Session的设定 .Tag library的对映 .JSP网页设定 .Mime Type处理 .错误处理 .利用JDNI取得站台资源 要了解web.xml的设定值,必须了解它的schema,从web.xml中知道它的schema是由Sum Microsystems公司定制的,如果你想更为详细的了解它, 可以到https://www.wendangku.net/doc/a111552841.html,/xml/ns/j2ee/web-mapp_2_4.xsd网页,那里有更为详细的介绍。这里我介绍我们平常见得最都的. 这是一般在写XML时所做的声明,定义了XML的版本,编码格式,还有重要的指明schema的来源,为https://www.wendangku.net/doc/a111552841.html,/xml/ns/j2ee /web-app_2_4.xsd. ,, ____________________________________________ 站台描述 对站台做出描述. 站台名称 定义站台的名称. icon元素包含small-icon和large-icon两个子元素.用来指定web站台中小图标和大图标的路径. /路径/smallicon.gif small-icon元素应指向web站台中某个小图标的路径,大小为16 X 16 pixel,但是图象文件必须为GIF或JPEG格式,扩展名必须为:.gif或 .jpg. /路径/largeicon-jpg large-icon元素应指向web站台中某个大图表路径,大小为32 X 32 pixel,但是图象文件必须为GIF或JPEG的格式,扩展名必须为; gif

tomcat性能优化

一、总结前一天的学习 从“第三天”的性能测试一节中,我们得知了决定性能测试的几个重要指标,它们是: ü吞吐量 ü Responsetime ü Cpuload ü MemoryUsage 我们也在第三天的学习中对Apache做过了一定的优化,使其最优化上述4大核心指标的读数,那么我们的Apache调优了,我们的Tomcat也作些相应的调整,当完成今的课程后,到时你的“小猫”到时真的会“飞”起来的,所以请用心看完,这篇文章一方面用来向那位曾写过“Tomcat如何承受1000个用户”的作都的敬,一方面又是这篇原文的一个扩展,因为在把原文的知识用到相关的两个大工程中去后解决了: 1) 承受更大并发用户数 2) 取得了良好的性能与改善(系统平均性能提升达20倍,极端一个交易达80倍)。 另外值的一提的是,我们当时工程里用的“小猫”是跑在32位机下的,也就是我们的JVM 最大受到2GB存的限制,都已经跑成“飞”了。。。。。。如果在64位机下跑这头“小猫”。。。。。。大家可想而知,会得到什么样的效果呢?下面就请请详细的设置吧! 二、一切基于JVM(存)的优化 2.1 32位操作系统与64位操作系统中JVM的对比 我们一般的开发人员,基本用的是都是32位的Windows系统,这就导致了一个严重的问题即:32位windows系统对存限制,下面先来看一个比较的表格: Winxp32 4GB 超级兔子 Win732 4GB 可以通过设置/PAE Win200332 可以突破4GB达16GB 必需要装win2003 advanced server且要打上sp2补丁Win764 无限制机器能插多少存,系统存就能支持到多大 Win200364 无限制机器能插多少存,系统存就能支持到多大

Tomcat面试题汇总及答案

Tomcat面试题汇总及答案 一、Tomcat 的缺省端口是多少,怎么修改? 1)找到 Tomcat 目录下的 conf 文件夹 2)进入 conf 文件夹里面找到 server.xml 文件 3)打开 server.xml 文件 4)在 server.xml 文件里面找到下列信息 port="8080"改成你想要的端口 二、tomcat 有哪几种 Connector 运行模式(优化)? bio:传统的 Java I/O 操作,同步且阻塞 IO。maxThreads=”150”//Tomcat 使用线程来处理接收的每个请求。这个值表示 Tomcat 可创建的最大的线程数。默认值 200。可以根据机器的时期性能和内存大小调整,一般可以在 400-500。最大可以在 800 左右。 minSpareThreads=”25”—Tomcat 初始化时创建的线程数。默认值 4。如果当前没有空闲线程,且没有超过 maxThreads,一次性创建的空闲线程数量。 Tomcat 初始化时创建的线程数量也由此值设置。maxSpareThreads=”75”–一旦创建的线程超过这个值,Tomcat 就会关闭不再需要的 socket 线程。默认值 50。一旦创建的线程超过此数值,Tomcat 会关闭不再需要的线程。线程数可以大致上用“同时在线人数每秒用户操作次数系统平均操作时间”来计算。 acceptCount=”100”—-指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。默认值 10。如果当前可用线程数为 0,则将请求放入处理队列中。这个值限定了请求队列的大小,超过这个数值的请求将不予处理。connectionTimeout=”20000”–网络连接超时,默认值 20000,单位:毫秒。设置为 0 表示永不超时,这样设置有隐患的。通常可设置为 30000 毫秒。 nio:JDK1.4 开始支持,同步阻塞或同步非阻塞 IO。指定使用 NIO 模型来接受 HTTP 请求 protocol=”org.apache.coyote.http11.Http11NioProtocol”指定使用 NIO 模型来接受HTTP 请求。默认是BlockingIO,配置为protocol=”HTTP/1.1”acceptorThreadCount=”2”使用 NIO 模型时接收线程的数目

相关文档