tomcat 8 优化 ***阿里云4核8G服务器推荐线程数设置800,单tomcat并发数超过1000服务器cpu急剧增加***

保持版本更新

删除默认应用

删除webapps目录下的所有文件,还涉及到管理页面的2个配置文件host-manager.xml和manager.xml也要删除,这两个文件在tomcat安装 目录下的conf/Catalina/localhost目录下。

服务降权使用普通用户运行tomcat

隐藏tomcat版本号

lib/catalina.jar 修改org/apache/catalina/util/ServerInfo.properties文件中的serverinfo字段

配置connector参数

<Connector
port="9689"
executor="tomcatThreadPool"
protocol="org.apache.coyote.http11.Http11Nio2Protocol"
connectionTimeout="20000"
maxConnections="5000"
redirectPort="8443"
enableLookups="false"
acceptCount="100"
maxPostSize="10485760"
compression="on"
disableUploadTimeout="true"
compressionMinSize="50"
acceptorThreadCount="2"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript"
URIEncoding="utf-8"
/>

配置线程池

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="800" minSpareThreads="100" prestartminSpareThreads="true" maxQueueSize="100"/>

管理shutdown端口

Tomcat 提供了通过 Socket 连接 8005 端口来执行关闭服务的能力,这在生产环境中是极为危险的。通过修改 server.xml 配置文件来禁用该管理端口:
<Server port="8005" shutdown="SHUTDOWN"> 修改为<Server port="-1" shutdown="SHUTDOWN">

管理AJP 连接端口

Tomcat 服务器通过 Connector 连接器组件与客户程序建立连接,Connector 组件负责接收客户的请求以及把 Tomcat 服务器的响应结果发送给客户。默认情况下,Tomcat 在 server.xml 中配置了两种连接器,一种使用 AJP,要和 apache 结合使用,一种使用 http。当使用 http 时,建议禁止 AJP 端口访问。禁用的方式是在 server.xml 中注释以下行:
<!--<Connector port="8329" protocol="AJP/1.3" redirectPort="8443" />-->

关闭 WAR 包自动部署,关闭tomcat自动解压&&&&&&(关闭后部署项目需手动解压war包)

默认 Tomcat 开启了对 WAR 包的热部署的。笔者建议关闭自动部署,以防止 WAR 被恶意替换后导致的网站挂马。关闭 WAR 包自动部署的方式在修改 server.xml 中的
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">改成<Host name="localhost" appBase="webapps" unpackWARs="false" autoDeploy="false">

自定义错误页面

通过自定义错误页面,可以防止在发生未处理的异常时导致的信息泄露。自定义错误页面的方式是,编辑 web.xml,在标签上添加以下内容:
<error-page>
<error-code>404</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>400</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error.html</location>
</error-page>

设置tomcat JVM内存

在生产环境中,tomcat内存设置不好很容易出现JVM内存溢,解决方法就是:修改Tomcat中的catalina.sh文件(windows系统下修改的文件时catalina.bat)。在catalina.sh文件中,找到cygwin=false,在这一行的前面加入参数,具体如下:
JAVA_OPTS='-server -Xms2048m -Xmx2048m -XX:NewSize=512m -XX:MaxNewSize=1024m -XX:PermSize=256m -XX:MaxPermSize=512m'


参考:https://blog.csdn.net/ThinkWon/article/details/102744033

猜你喜欢

转载自www.cnblogs.com/izhixin/p/11996736.html