Tomcat调优

本文详细介绍了如何对Tomcat进行性能优化,包括隐藏HTTP头部版本信息、修改404错误页版本号、调整运行模式(BIO、NIO、APR)、优化线程池配置、禁用AJP连接器和8005端口,以及JVM参数的调整。此外,还提到了使用JMeter进行压力测试以评估优化效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Tomcat优化

隐层版本信息

隐藏HTTP 头部的版本信息

编辑server.xml,为Connector 添加 server 属性

[root@wzy ~]# vi /usr/local/tomcat/conf/server.xml

添加红色部分的server属性

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

               connectionTimeout="20000"

               redirectPort="8443" server="APP Srv1.0"/>

重启tomcat服务

[root@wzy ~]# systemctl restart tomcat

[root@wzy ~]# netstat -anplt | grep java

验证结果

192.168.10.5:8080/index.jsp

F12 然后刷新页面,查看网络,点index.jsp看标头版本号已改

隐藏404页面出现的版本号

有时候为了服务器安全很多信息是不能显露出来了,这其中就包含了tomcat服务器的版本号。
修改前如下:

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

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

进入tomcat的lib目录找到catalina.jar文件

[root@wzy ~]# cd /usr/local/tomcat/lib/

解压catalina.jar包

[root@wzy lib]# jar xf catalina.jar

修改ServerInfo.properties文件

进入org/apache/catalina/util 编辑配置文件ServerInfo.properties

[root@wzy lib]# cd org/apache/catalina/util

[root@wzy util]# vi ServerInfo.properties

server.info= app srv/1.0

server.number=1.0

server.built=Jun 4 2019 20:29:04 UTC

将修改后的信息压缩回jar包

[root@wzy util]# cd /usr/local/tomcat/lib/

[root@wzy lib]# jar uvf catalina.jar org/apache/catalina/util/ServerInfo.properties

删除解压目录

[root@wzy lib]# rm -rf META-INF/  org/

重启tomcat

[root@wzy lib]# systemctl restart tomcat

[root@wzy lib]# netstat -anplt | grep java

测试

http://192.168.10.5:8080/abc.jsp

Tomcat 中的三种运行模式之运行模式的优化

Tomcat支持三种接收请求的处理方式:BIO、NIO、APR 。

BIO(Blocking IO,阻塞式):

阻塞式I/O操作即使用的是传统 I/O操作,Tomcat7以下版本默认情况下是以BIO模式运行的,由于每个请求都要创建一个线程来处理,线程开销较大,不能处理高并发的场景,在三种模式中性能也最低。

NIO(Non-blocking IO,非阻塞IO):

NIO是Java 1.4 及后续版本提供的一种新的I/O操作方式,是一个基于缓冲区、并能提供非阻塞I/O操作的Java API,利用java异步IO技术使Tomcat运行性能有所提升,可以通过少量的线程处理大量的请求。它拥有比传统I/O操作(BIO)更好的并发运行性能。tomcat 8版本及以上默认就是在NIO模式下允许。

Java NIO 可以让你非阻塞的使用IO,例如:当线程从通道读取数据到缓冲区时,线程还是可以进行其他事情。当数据被写入到缓冲区时,线程可以继续处理它。从缓冲区写入通道也类似。Tomcat8 在Linux系统中默认使用这种方式。

启动Tomcat后,在/usr/local/tomcat/logs/catalina.out日志中可以查看tomcat8运行模式时NIO。

不过,在tomcat8中有最新的nio2,速度更快,建议使用nio2

修改配置文件

[root@wzy ~]# vim /usr/local/tomcat/conf/server.xml #修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值