设为首页 收藏本站
查看: 598|回复: 0

[经验分享] tomcat安全及性能调整

[复制链接]

尚未签到

发表于 2018-12-1 07:38:56 | 显示全部楼层 |阅读模式
1、tomcat安全
  1)删除原webapps下的ROOT下所有内容(这个是tomcat管理工具的东西,没有必要保留)
2)禁用tomcat管理(tomcat8默认是禁用的)
3)降权启动(可以使用tomcat用户启动,需要catalina.sh修改)
注意:严格遵守目录755和文件644
bin、conf、lib、webapps给予root用户,有时候需要给conf目录tomcat用户权限,因为在启动时会有配置文件的创建
tmp、logs、work目录给予tomcat用户(用户存放临时文件)
4)关闭war包自动部署(防止被植入病毒)
server.xml文件修改:unpackwars="false" autoDeploy="false"
5)关闭不必要的端口:
8005端口可以进行禁止(一般将端口设置为-1)或者将shutdown字段更改为其他。
使用了nginx+tomcat,请关闭8009端口,
如果使用了apache+tomcat,请关闭8080端口。
6)禁止目录列表(tomcat7和8默认是禁止的)
7)tomcat和jdk最好版本统一
8)tomcat隐藏版本号,一种是curl命令,一种是浏览器返回信息,这两种都需要隐藏。
2、tomcat性能调整
  1)一般而言JDK版本越高,性能也会越好,开发新项目最好使用较新的jdk版本
2)内存优化
说道内存的优化,主要是针对tomcat的启动参数优化,tomcat的启动脚本:catalina.sh
通过在这个脚本中设置JAVA_OPTS参数,来实现tomcat性能的调优
下面对参数进行一个总结:
-server 启用JDK的server版,都要加上这个参数
-Xms   java虚拟机初始化时最小的内存(堆内存)
-Xmx   java虚拟机可以使用的最大的内存(堆内存)
-XX:PermSize=512m 内存永久保留区(堆栈)tomcat版本不同,参数不同
-XX:MaxPermSize=512m 内存最大永久保留区(堆栈)tomcat版本不同,参数不同
生产环境中一般情况将xms和xmx设置为一样大,这样不用再让系统再分配内存给java虚拟机,一般设置为系统的70%。这个是不是硬性规定的,这个还要看你的项目及系统多少内存,最好使用监控用来定位。
-Xss 128k 设置每个线程的堆栈大小为128k。
-XX:NewRatio=4 设置年轻代和老年代的比值为4
-XX:SurvivorRatio=4 设置年轻代中Eden区和Survivor区大小比为4
-XX:MaxTenuringThreshold=0 设置垃圾最大年龄为0
-XX:+UseParalleIGC 选择垃圾收集器为并行收集器
-XX:ParalleIGCThreads=8 配置并行收集器的线程数
-XX:+UseParallelOldGC  配置年老带垃圾收集方式为并行收集
-XX:+UseAdaptiveSizePolicy 并行收集器会自动选择年轻代区大小和相应的Survivor区比例,已达到目标系统规定的最低响应时间见或者收集频率等,此值建议使用并行收集器时,一直打开。
3)连接池
(可以多个tomcat公用一个连接池)以下是个案例:

name是线程池的名字,maxprefix:线程前缀
maxThreads:最大连接数
minSpareThreads:初始化时线程数
prestartminSpareThreads:true,如果为false,则minSpareThreads无效
maxQueueSize:队列数(5.5版本以前),acceptCount:最大队列数
其中和最大连接数相关的参数为maxThreads和acceptCount。如果要加大并发连接数,应同时加大这两个参数。
参考文章:https://tomcat.apache.org/tomcat-8.5-doc/config/server.html 关于各版本有所不同,需要另行查看
大神优化:
https://blog.csdn.net/ystyaoshengting/article/details/47335873




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-641743-1-1.html 上篇帖子: 【系列4】使用Dockerfile创建带tomcat的Centos Docker镜像 下篇帖子: 配置TOMCAT及httpClient的keepalive以高效利用长连接
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表