由于blog各种垃圾评论太多,而且本人审核评论周期较长,所以懒得管理评论了,就把评论功能关闭,有问题可以直接qq骚扰我

tomcat部署以及安全和性能调优

web 西门飞冰 2153℃

Tomcat安装配置

环境介绍:
系统:centos 6.8 64 位
jdk:1.8
tomcat:8.0.23

Java环境配置

Java下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
JDK安装

tar xf jdk-8u65-linux-x64.tar.gz -C /usr/local/
cd /usr/local/
ln -s jdk1.8.0_65/ jdk
echo "JAVA_HOME=/usr/local/jdk" > /etc/profile.d/java.sh
echo "export PATH=\$JAVA_HOME/bin:\$PATH" >> /etc/profile.d/java.sh 
source /etc/profile.d/java.sh
java -version

Tomcat配置

Tomcat下载:https://tomcat.apache.org/download-80.cgi
Tomcat安装:

tar xf apache-tomcat-8.0.23.tar.gz -C /usr/local/
cd /usr/local/
ln -s apache-tomcat-8.0.23/ tomcat

添加tomcat启动脚本

[root@tomcat-01 ~]# vim /etc/init.d/tomcat 
#!/bin/sh
# Tomcat init script for Linux.
#
# chkconfig: 2345 96 14
# description: The Apache Tomcat servlet/JSP container.
JAVA_HOME=/usr/local/jdk
CATALINA_HOME=/usr/local/tomcat
export JAVA_HOME CATALINA_HOME
case $1 in
start)
  exec $CATALINA_HOME/bin/catalina.sh start ;;
stop)
  exec $CATALINA_HOME/bin/catalina.sh stop;;
restart)
  $CATALINA_HOME/bin/catalina.sh stop
  sleep 2
  exec $CATALINA_HOME/bin/catalina.sh start ;;
*)
  echo "Usage: `basename $0` {start|stop|restart}"
  exit 1
  ;;
esac
[root@tomcat-01 ~]# chmod +x /etc/init.d/tomcat 
[root@tomcat-01 ~]# chkconfig --add tomcat
[root@tomcat-01 ~]# chkconfig tomcat on

启动后的tomcat是占用8080端口

[root@tomcat tomcat]# netstat –lntp
tcp        0      0 :::8080                     :::*                        LISTEN      3078/java   
tcp        0      0 ::ffff:127.0.0.1:8005       :::*                        LISTEN      3078/java           
tcp        0      0 :::8009                     :::*                        LISTEN      3078/java

访问tomcat服务器的8080端口,就可以打开web页面了

安全调优

1、 conf/server.xml:设置telnet管理端口保护:默认端口8005,telnet连接此端口输入shutdown指令,可以关闭tomcat,建议更改此端口,并且设置关闭指令为其他字符

<Server port="12345" shutdown="awefaowefbaowegaoegagawge">

2、 conf/server.xml:jap是为tomcat与http服务器之间通信而定制的协议,如果tomcat前段放的是apache的时候,会使用到ajp这个连接器。如果不使用ajp协议,直接禁用掉这个端口

<!--
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
-->

3、 禁用管理器:tomcat管理端属于tomcat高危安全隐患,一旦被攻破,黑客通过上传web shell的方式将会直接取得服务器的控制权,后果极其严重。解决方法,删除tomcat安装目录/webapp下默认的所有目录和文件;将tomcat应用根目录配置为tomcat安装目录以外的目录。

rm -rf /usr/local/tomcat/webapps/*

4、 降权启动
用户创建:

useradd tomcat
passwd tomcat

修改相关目录属主为tomcat:

chown -R tomcat /usr/local/tomcat/
chown tomcat /etc/init.d/tomcat 
chown -R tomcat 应用程序日志目录
chown -R tomcat 应用程序目录

启动tomcat,需要使用创建的tomcat用户执行启动脚本
5、 文件列表访问控制:conf/web.xml文件中default部分listings的配置必须为false,表示不列出目录文件。

        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>

6、 版本信息隐藏

[root@Tomcat-01 ~]# cd /usr/local/tomcat/lib/
[root@Tomcat-01 lib]# mkdir -p org/apache/catalina/util
[root@Tomcat-01 lib]# cd org/apache/catalina/util/
[root@Tomcat-01 util]# vim ServerInfo.properties
server.info=nolinux     #设置版本号

7、 server header重写:修改server.xml文件,当tomcat http端口直接提供web服务时此配置生效,加入此配置,将会替换http响应server header部分的默认配置

    <Connector port="8080" protocol="HTTP/1.1"
               server="webserver"
               connectionTimeout="20000"
               maxKeepAliveRequests="1"
               redirectPort="8443" />

8、 起停脚本权限回收

chmod 700 /usr/local/tomcat/bin/shutdown.sh
chmod 700 /usr/local/tomcat/bin/startup.sh

9、 关闭war自动部署:修改server.xml文件

      <Host name="localhost" appBase="webapps" unpackWARs="false" autoDeploy="false">

性能调优

修改server.xml配置:线程数调整和关闭dns解析

    <Connector port="8080" protocol="HTTP/1.1"
               server="webserver"
               connectionTimeout="20000"
               maxKeepAliveRequests="1"
               redirectPort="8443" 
               maxThreads="600"    	    #最大线程数
               minSpareThreads="100"    #初始化创建线程数
               maxSpareThreads="500"    #一旦创建线程超过这个值,tomcat就会关闭不在需要的线程
               acceptCount="400"	    #指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
			   enableLookups="false" /> #禁用DNS解析

tomcat性能调优,最重要的一部分就是jvm调优:修改tomcat安装目录下的bin/catalina.sh设置JAVA_OPTS变量设置相关值即可。

[root@Tomcat-01 ~]# vim /usr/local/tomcat/bin/catalina.sh
JAVA_OPTS=" -server -Xms2048m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m -Djava.awt.headless=true"

建议:设置jvm参数,最好和你们的开发进行协商,可以一起来配置jvm参数。

如果想深入了解jvm可以参考阿里云提供的jvm文档博文进行了解
https://yq.aliyun.com/tags/type_blog-tagid_56/?spm=5176.100239.blogcont52426.4.GGAR5b

tomcat其他性能调优:
(1)操作系统的调优
(2)前端代理服务器调优

参考文档:包含前端代理调优
https://www.zybuluo.com/happyfans/note/161734
http://nolinux.blog.51cto.com/4824967/1608940

转载请注明:西门飞冰的博客 » tomcat部署以及安全和性能调优

喜欢 (0)or分享 (0)