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.23
server.number=8.0.23.0
server.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.properties
server.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
来源:http://blog.csdn.net/our_sky/article/details/51362676
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对你的网站来说已经能 ...
随机推荐
- 安装部署完office web apps 后,无法浏览Word
安装部署完office web apps 后,在sharepoint 2010浏览器中浏览Word提示:“由于出现意外错误,Word Web App 无法打开此 文档 进行查看. 要查看此 文档,请在 ...
- /etc/passwd&/etc/shadow文件分析
/etc/passwd该目录存储的是操作系统用户信息,该文件为所有用户可见.给linux系统添加一个帐号:useradd -g mysql -d /home/test -m test(:新建一个用户t ...
- 后台使用Spring MVC 4.15 版本 通过 ajaxFileUpload plugin插件上传文件相应时引起的一个小问题,Chrome、Firefox中出现SyntaxError:unexpected token <
html: 使用ajaxFileUpload插件做文件上传时,后台返回json格式的数据,js代码如下: 接下来,把结果错误信息打印出来: 先在网上找了下解决办法方案,stackoverflow上有说 ...
- 3、C#面向对象:封装、继承、多态、String、集合、文件(下)
面向对象多态 一.装箱和拆箱 装箱:将值类型转换为引用类型.object o = 1:值类型给引用类型赋值 拆箱:将引用类型转换为值类型.int n = (int)o; 强制转换为值类型 满足条件:两 ...
- struts2.3.4,jar包必须添加完整
- ConCurrent in Practice小记 (3)
ConCurrent in Practice小记 (3) 高级同步技巧 Semaphore Semaphore信号量,据说是Dijkstra大神发明的.内部维护一个许可集(Permits Set),用 ...
- nodeJs中创建服务器
var http=require('http'); var httpObj=http.createServer(function(req,res) { console.log('someBody:' ...
- Linux系统yum命令安装软件时保留(下载)rpm包 -- 转载
昨天在部署zabbix监控的时候,遇到一个问题:监控服务器处于无外网状态,在线安装不可用.而某些依赖包度娘或谷姐搜索起来也挺呛人的!于是想到一个办法,利用有外网的服务器的yum命令来安装这些软件,并自 ...
- 各版本CRM所需端口号
以下是微软官方提供的CRM端口号列表,收藏一下: 4.0 :https://msdn.microsoft.com/en-us/library/dd979226(v=crm.6).aspx This s ...
- ie 出现 append无效
今天发现用ie append 无效,但是在谷歌浏览器上可以使用,问题在于 拼接字符串的时候出现多了一个标签. 解决方法:检查是否有多余或少写html标签.