伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 教育考试 » 文章详细 订阅RssFeed

前技术总监优化tomcat的建议,派上用场了

来源:本站原创 浏览:84次 时间:2022-12-07

最近公司又在搞安全监控,针对tomcat关于AJP端口存在的漏洞要求升级指定版本或关闭该端口重启服务,小编所在的部门关于tomcat外置服务器AJP端口早已关闭,得益于前技术总监的优化建议。

以下是关于前技术总监关于tomcat优化的建议,拿小本本记下的内容:

1.关闭AJP端口8009

在tomcat前再使用web服务器时,即便tomcat提供的都是静态资源文件,情况都要比直接使用http连接差的多,如果确实有需要集成前置服务器,走AJP协议要比http协议性能更好。通常前置服务器有nginx做静态伺服器和反向代理足矣,无需使用AJP,不用的资源直接关掉即可。

2.关闭access_log

外置tomcat服务器server.xml中会输出access_log日志,基本没有什么价值,可以关闭了。springboot中内置的tomcat默认就是关闭access_log的。

<Valve className="org.apache.catalina.valves.AccessLogValve" 
directory="logs"  prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b" />

3.关闭无用的servlet

有些无用的servlet配置也可以去掉,例如未使用jsp可以关掉相关的配置。

<servlet>
  <servlet-name>jsp</servlet-name>
  <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
  <init-param>
    <param-name>fork</param-name>
    <param-value>false</param-value>
  </init-param>
  <init-param>
    <param-name>xpoweredBy</param-name>
    <param-value>false</param-value>
  </init-param>
  <load-on-startup>3</load-on-startup>
</servlet>

4.war包与tomcat分离开

不要直接把war包上传到webapps下发布,应该将war包放到指定的目录,并在conf/Catalina/localhost目录下添加相应的配置文件,内容如下。

<?xml version="1.0" encoding="UTF-8"?>
<Context path="" docBase="D:\demo.war" />

5.生产环境禁止启用<Context>属性的reloadable=true

reloadable是需要线程监听程序文件修改的,然后重新加载web应用,默认值是false(不同版本可能有差异),开发测试可以启用。

6.连接器connector使用线程池

server.xml文件中有注释掉的相关配置,合理设置线程池最大值,最小值,最大连接数,超时时间等,可通过jemeter进行压力测试,没有放之四海皆准的配置。namePrefix可以自定义方便标识。

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-star-"
 maxThreads="200" connectionTimeout="20000" minSpareThreads="10"/>

7.jsp预编译

我们知道jsp是通过servlet写出的,所以访问jsp页面会进行编译操作,jsp->java->class,提前把jsp编译成class可以减少运行时编译,当然这需要因地制宜。

8.连接器配置protocal

设置协议处理传入的流量,默认值是HTTP/1.1,tomcat会自动选择apr(如果存在相关本地库)或java nio,也可指定协议。

org.apache.coyote.http11.Http11NioProtocol -non blocking Java NIO connector
org.apache.coyote.http11.Http11Nio2Protocol -non blocking Java NIO2 connector
org.apache.coyote.http11.Http11AprProtocol -the APR/native connector.
9.合理设置JAVA_OPTS

相关设置需要结合服务器信息(内存,处理器等),可以打开gc日志,使用jemeter压测进行相应调整,适当调整各代大小减少gc。

set "JAVA_OPTS=%JAVA_OPTS% -server -Xms1024m -Xmx1024m -Xss512k -Xloggc:/star_gc.log -XX:+PrintGCDetails -XX:+UseG1GC"

10.有关session管理

如果有会话管理,可以直接使用tomcat生成的sessionId策略,无需自己再生成一套sessionId,或者实现SessionIdGenerator 定义自己的session管理,尽量减少重复性工作。


  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net