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部署以及安全和性能调优