Tomcat8安装, 安全配置与性能优化(转)
一、Tomcat 安装
- 官网:http://tomcat.apache.org/
- Tomcat8官网下载地址:http://tomcat.apache.org/download-80.cgi
- 为了便于文件管理,个人习惯 在/opt目录下创建 一个install目录用于存放 软件安装包,在/usr 目录下创建local文件夹用户存放解压文件
- 下载安装包: wget http://apache.fayea.com/tomcat/tomcat-8/v8.0.32/bin/apache-tomcat-8.0.32.tar.gz
- 解压压缩包: tar -zxvf apache-tomcat-8.0.32.tar.gz
- 移动解压文件到 mv apache-tomcat-8.0.32/ /usr/local/
- 为方便起见,可以使用 mv /usr/local/apache-tomcat-8.0.32/ /usr/local/tomcat8/ 修改目录名称
sudo /etc/rc.d/init.d/iptables save二、Tomcat 安全配置与优化
2.1优化server.xml
2.1.1 隐藏版本信息
- 隐藏HTTP 头部的版本信息 。
编辑server.xml: vi /usr/local/tomcat8/conf/server.xml
- <span style="font-family:Consolas, Liberation Mono, Menlo, Courier, monospace;"> </span><span style="font-family:Microsoft YaHei;"> <Connector port="8080" protocol="HTTP/1.1"
- connectionTimeout="20000"
- redirectPort="8443" server="APP Srv1.0"/></span>
- 隐藏404页面出现的版本号
我们可以通过 jar xf 命令解压这个 jar 包会得到两个目录 META-INF 和 org ,通过修改 org/apache/catalina/util/ServerInfo.properties 文件中 的 serverinfo 字段来实现来更改我们tomcat的版本信息。
文件信息如下:
[root@localhost ~]# cat /usr/local/tomcat8/lib/org/apache/catalina/util/ServerInfo.properties |grep -v '^$|#'server.info=Apache Tomcat/8.0.23server.number=8.0.23.0server.built=Mar 18 2016 20:31:49 UTC还有另外一种方法来实现隐藏或伪装Tomcat的版本信息,其本质和上面一样,操作如下:[root@localhost ~]# cd /usr/local/tomcat8/lib[root@localhost lib]# mkdir -p org/apache/catalina/util[root@localhost lib]# cd org/apache/catalina/util[root@localhost util]# vim ServerInfo.propertiesserver.info=nolinux # 如果想修改成其它版本号,把这个地方的值改成其它值就行了修改效果如下:
2.1.2禁用Tomcat管理界面
生产环境一般不适用Tomcat默认的管理界面,这些页面存放在Tomcat 的webapps安装目录下,
把该目录下的所有文件删除即可:rm -rf /usr/local/tomcat8/webapps/*
另外删除相关的配置文件 host-manager.xml 和 manager.xml,在Tomcat 安装目录 conf/Catalina/localhost目录下。
注释或删除tomcat_user.xml 中的所有用户权限。
2.1.3 应用程序安全
tomcat默认 开启了对war热部署。为了防止被植入木马恶意攻击,我们要关闭war包自动部署。
关闭自动加载最新代码(设置reloadable)
修改实例:
- <Host name="localhost" appBase="webapps"
- unpackWARs="false" autoDeploy="false"
- reloadable="false">
2.1.4 更改关闭Tomcat的指令
server.xml中定义了可以直接关闭 Tomcat 实例的管理端口。我们通过 telnet 连接上该端口之后,输入 SHUTDOWN (此为默认关闭指 令)即可关闭 Tomcat 实例(注意,此时虽然实例关闭了,但是进程还是存在的)。由于默认关闭 Tomcat 的端口和指令都很简单。默认端口为 8005,指令为SHUTDOWN 。因此我们需要将关闭指令修改复杂一点。
当然,在新版的 Tomcat 中该端口仅监听在127.0.0.1上,因此大家也不必担心。除非黑客登陆到tomcat本机去执行关闭操作。
修改实例:
<Server port="8005" shutdown="9SDKJ29jksjf23sjf0LSDF92JKS9DKkjsd">
或者禁用8005端口
<Server port="-1" shutdown="SHUTDOWN">
2.1.5 连接池配置
使用线程池,用较少的线程处理较多的访问,可以提高tomcat处理请求的能力。
编辑配置文件 server.xml : vi /usr/local/tomcat8/conf/server.xml
2.1.5.1 打开被注释的默认连接池配置
默认配置:
- <!--
- <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
- maxThreads="150" minSpareThreads="4"/>
- -->
- <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
- maxThreads="150" minSpareThreads="100"
- prestartminSpareThreads="true" maxQueueSize="100"/>
- name: 线程名称
- namePrefix: 线程前缀
- maxThreads : 最大并发连接数,不配置时默认200,一般建议设置500~ 800 ,要根据自己的硬件设施条件和实际业务需求而定。
- minSpareThreads:Tomcat启动初始化的线程数,默认值25
- prestartminSpareThreads:在tomcat初始化的时候就初始化minSpareThreads的值, 不设置true时minSpareThreads
- maxQueueSize: 最大的等待队列数,超过则拒绝请求
2.1.5.2 修改链接配置
- <Connector port="8080" protocol="HTTP/1.1"
- connectionTimeout="20000"
- redirectPort="8443" />
- <Connector port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol"
- connectionTimeout="20000"
- redirectPort="8443"
- executor="tomcatThreadPool"
- enableLookups="false"
- acceptCount="100"
- maxPostSize="10485760"
- compression="on"
- disableUploadTimeout="true"
- compressionMinSize="2048"
- noCompressionUserAgents="gozilla, traviata"
- acceptorThreadCount="2"
- compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript"
- URIEncoding="utf-8"/>
- port:连接端口。
- protocol:连接器使用的传输方式。 Tomcat 8 设置 nio2 更好:org.apache.coyote.http11.Http11Nio2Protocol
- protocol, Tomcat 6、7 设置 nio 更好:org.apache.coyote.http11.Http11NioProtocol
- executor: 连接器使用的线程池名称
- enableLookups:禁用DNS 查询
- acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理,默认设置 100 。
- maxPostSize:限制 以FORM URL 参数方式的POST请求的内容大小,单位字节,默认是 2097152(2兆),10485760 为 10M。如果要禁用限制,则可以设置为 -1。
- acceptorThreadCount: 用于接收连接的线程的数量,默认值是1。一般这个指需要改动的时候是因为该服务器是一个多核CPU,如果是多核 CPU 一般配置为 2。
- compression:传输时是压缩。
- compressionMinSize:压缩的大小
- noCompressionUserAgents:不启用压缩的浏览器
2.1.6 管理AJP端口
- <span style="font-family:Microsoft YaHei;">
- <!--<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />--></span>
2.2 JVM
2.3 应用程序部署
|
1
2
3
4
5
6
|
[root@localhost ~]# groupadd tomcat[root@localhost ~]# useradd -g tomcat tomcat[root@localhost ~]# passwd tomcat[root@localhost ~]# chown tomcat.tomcat -R /usr/local/tomcat[root@localhost ~]# su - tomcat /usr/local/tomcat/bin/startup.sh[root@localhost ~]# echo 'su - tomcat -c "tomcat /usr/local/tomcat/bin/startup.sh"' >> /etc/rc.local #开机启动 |
参考资料:
https://github.com/judasn/Linux-Tutorial/blob/master/Tomcat-Install-And-Settings.md
http://nolinux.blog.51cto.com/4824967/1608940
centos7设置防火墙:http://stackoverflow.com/questions/24729024/centos-7-open-firewall-port
JVM模型:http://xmuzyq.iteye.com/blog/599750
Tomcat8安装, 安全配置与性能优化(转)的更多相关文章
- [记录]NGINX配置HTTPS性能优化方案一则
NGINX配置HTTPS性能优化方案一则: 1)HSTS的合理使用 2)会话恢复的合理使用 3)Ocsp stapling的合理使用 4)TLS协议的合理配置 5)False Start的合理使用 6 ...
- mysql配置以及性能优化(转)
MySQL配置文件my.cnf中文详解,附mysql性能优化方法分享 ================================================================= ...
- Tomcat安全配置与性能优化
Tomcat 是 Apache软件基金会下的一个免费.开源的WEB应用服务器,它可以运行在 Linux 和 Windows 等多个平台上,由于其性能稳定.扩展性好.免费等特点深受广大用户喜爱.目前,很 ...
- nginx全局配置和性能优化
nginx目录结构和命令 1.ls /apps/nginx/: html是测试页,sbin是主程序 2.ls /apps/nginx/sbin/: nginx 只有一个程序文件 3. ...
- vue-cli3项目搭建配置以及性能优化
项目初始化 注意:安装前请确保有安装node.js,并且node>=8.9 全局安装vue npm install -g @vue/cli 如果之前安装了vue旧版本,查看vue --versi ...
- Tomcat8安装及配置教程
Apache Tomcat8.0安装及配置教程.. Apache Tomcat8.0官方网站链接:http://tomcat.apache.org/ apache-tomcat-8.0.39-wi ...
- Tomcat8安装, 安全配置与性能优化
一.Tomcat 安装 官网:http://tomcat.apache.org/ Tomcat8官网下载地址:http://tomcat.apache.org/download-80.cgi 为了便于 ...
- Tomcat 安全配置与性能优化
一.Tomcat内存优化 1.JAVA_OPTS参数说明 Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 JAVA_OP ...
- Nginx基本配置、性能优化指南
大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了!而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能 ...
随机推荐
- 0033 Java学习笔记-反射-初步1
先看看通过反射能干嘛 示例:修改对象的private实例变量 package testpack; import java.lang.reflect.Field; public class Test1 ...
- jquery的几个常用方法
第一部份关键词: .bind() .unbind() .css() .hasclass() .removeclass .parent() .children() .html() .hide() .sh ...
- 按照TYPE的文件导入导出功能
/** * 导入文件Action;*/private File excelFile;// 保存原始文件名private String excelFileFileName;// 保存原始文件名priva ...
- 将Centos的yum源更换为国内的阿里云源
阿里云是最近新出的一个镜像源.得益于阿里云的高速发展,这么大的需求,肯定会推出自己的镜像源.阿里云Linux安装镜像源地址:http://mirrors.aliyun.com/ CentOS系统更换软 ...
- 深入java集合学习1-集合框架浅析
前言 集合是一种数据结构,在编程中是非常重要的.好的程序就是好的数据结构+好的算法.java中为我们实现了曾经在大学学过的数据结构与算法中提到的一些数据结构.如顺序表,链表,栈和堆等.Java 集合框 ...
- OpenWRT镜像爬虫搭建本地源
网上的爬虫不能用,还是先表达谢意,不过我比较懒不喜欢重复写别人写的教程,只贴出修改,怎么用自己看教程吧. 我自己改了一版可以正常爬: #!/usr/bin/env python #coding=utf ...
- S5PV210_uart stdio移植
1.stdio : standard input output 标准输入输出 2.printf函数调用到的2个关键函数: vsprintf : 格式化打印信息,最终得到纯字符串的打印信息等待输出 pu ...
- c# float显示时保存一位小数
UI显示时候,需求保留一位小数 //保留一位小数 参考: http://blog.sina.com.cn/s/blog_620531730100kfz6.html float ff = 1.01f; ...
- Why many EEG researchers choose only midline electrodes for data analysis EEG分析为何多用中轴线电极
Source: Research gate Stafford Michahial EEG is a very low frequency.. and literature will give us t ...
- [LeetCode] The Skyline Problem 天际线问题
A city's skyline is the outer contour of the silhouette formed by all the buildings in that city whe ...