隐藏版本信息
为了避免黑客针对某些版本进行攻击,因此我们需要隐藏或者伪装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中的
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. 首先,在发布网站之前,这个网站是已经做好了的。 这里只是介绍了一下载发布过程中可能遇到的问题以及解决的方法。 首先是添加Tomcat的虚拟主机 打开tomcat安装目录下conf/server.xml这个文件。在server.xml文档中找到 接着在上面添加以下内容: Tomcat的配置文件server.xml 中各个域的说明及相关配置 2007-04-20 12:42 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") 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性能调优几个方面 一、操作系统调优 对于操作系统优化来说,是尽可能的增大可使用的内存容量、提高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网站发布配置方案详细说明 修改端口、修改默认发布目录、多域名绑定 一、修改发布端口号为80(Tomcat默认为8080) 打开配置文件(我的如下:E:\J2EEServer\Tomcat 6.0\conf\server.xml),找到: 代码如下: 第一章 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服务器的插件在内部地址空间打 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) 首先检查服务器是否已经安装了 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-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文件,在默认的情况下 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如下: 有关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负载均衡配置安装环境说明 (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. 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 设置老年代迸发收集器, 第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的产 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网页,那里有更为详细的介绍。这里我介绍我们平常见得最都的. 一、总结前一天的学习 从“第三天”的性能测试一节中,我们得知了决定性能测试的几个重要指标,它们是: ü吞吐量 ü 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 的缺省端口是多少,怎么修改? 1)找到 Tomcat 目录下的 conf 文件夹 2)进入 conf 文件夹里面找到 server.xml 文件 3)打开 server.xml 文件 4)在 server.xml 文件里面找到下列信息 在Win7上用Tomcat发布网站
Tomcat的配置文件server.xml 中各个域的说明及相关配置
tomcat7.0.2配置
IDEA 2020 配置Tomcat服务器的详细步骤
Tomcat服务器性能调优几个方面
Tomcat网站发布配置方案详细说明
Tomcat完整教程
3TOMCAT配置优化(完整版)
Tomcat-安装手册
如何优化提高tomcat启动速度
tomcat配置信息
有关tomcat服务器的并发设置与优化
tomcat负载均衡配置
Tomcat6优化
tomcat安装与配置
tomcat web.xml配置详解
tomcat性能优化
Tomcat面试题汇总及答案