Linux服务器性能优化+安全配置方案参数
一、Tomcat参数配置
1、 禁用AJP连接
在Tomcat的conf文件下的server.Xml文件中找到下面的句子注释掉,重启Tomcat就可以禁用AJP,注释如下:
<!-- Define an AJP 1.3 Connector on port 8009 -->
<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->
Nginx+Tomcat架构是使用不上AJP的,Tomcat打开的时候会默认开启AJP,所以禁用AJP节省资源。
2、 修改成nio运行模式
在Tomcat的conf文件下的server.Xml文件中端口号后面的protocol改成以下内容即可,重启Tomcat生效
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="2000000"
redirectPort="8443" />
tomcat的运行模式有3种:
(1) bio默认的模式,性能非常低下,没有经过任何优化处理和支持.
(2)nionio(new I/O),是Java SE 1.4及后续版本提供的一种新的I/O操作方式(即java.nio包及其子包)。Java nio是一个基于缓冲区、并能提供非阻塞I/O操作的Java API,因此nio也被看成是non-blocking I/O的缩写。它拥有比传统I/O操作(bio)更好的并发运行性能。
(3)apr安装起来最困难,但是从操作系统级别来解决异步的IO问题,大幅度的提高性能.
推荐使用nio,不过,在tomcat8中有最新的nio2,速度更快,建议使用nio2.
3、 配置线程池
在Tomcat的conf文件下的server.Xml文件中修改,重启Tomcat生效:
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="500" minSpareThreads="200"
prestartminSpareThreads="true" maxQueueSize="100"/>
合理的参数配置需要根据服务器硬件和系统进行调整,需要经过多次性能测试验证
参数说明:
maxThreads:最大并发数,默认设置 200,一般建议在 500 ~ 1000,根据硬件设施和业务来判断
minSpareThreads:Tomcat 初始化时创建的线程数,默认设置 25
prestartminSpareThreads: 在 Tomcat 初始化的时候就初始化 minSpareThreads 的参数值,如果不等于 true,minSpareThreads 的值就没啥效果了
maxQueueSize,最大的等待队列数,超过则拒绝请求
4、 配置jvm
在Tomcat的bin目录下的catalina.sh文件里添加内容。
现公司服务器一般内存总4G,Tomcat分配2G ,所以可以采取以下配置:
JAVA_OPTS='-Xms512m -Xmx2048m -XX:PermSize=512m -XX:MaxNewSize=512m -XX:MaxPermSize=2048m'
参数说明
server 启用jdk 的 server 版; -Xms java虚拟机初始化时的最小内存; -Xmx java虚拟机可使用的最大内存; -XX: PermSize 内存永久保留区域 -XX:MaxPermSize 内存最大永久保留区域
5、 修改Tomcat关闭实例指令
在Tomcat的conf文件下的server.Xml文件中修改,重启Tomcat生效:
<Server port="8010" shutdown="wahaha">
关闭 Tomcat 的默认端口为8005,指令为SHUTDOWN 。在运维过程中基本用不上,但出于安全考虑,为防止被远程连接关闭Tomcat,最好修改成其他的端口和关闭命令。
6、 隐藏Tomcat版本号
#yum install unzip #安装解压工具,提示按y即可
进入Tomcat的lib目录下
# cd /opt/tomcat/lib/
# cp catalina.jar /tmp/ #备份文件
解压jar包
# unzip catalina.jar
修改版本信息
# vi org/apache/catalina/util/ServerInfo.properties
server.info=x
server.number=x
server.built=x
重新打包成jar包
cd /tomcat/lib
jar uvf catalina.jar org/apache/catalina/util/ServerInfo.properties
重启Tomcat生效
隐藏报错和Tomcat页面提示的版本号,防止被人从版本漏洞攻击服务器
二、Nginx参数配置
Nginx只需要配置nginx.conf文件
1、文件顶部配置内容
worker_processes auto; #auto自动检测最佳运算进程数
worker_rlimit_nofile 100000; #设置进程打开文件最大数
2、events模块中配置内容
worker_connections 2048; #进程同时打开的最大连接数,默认为1024
use epoll; #Linux系统使用epoll非阻塞模式
multi_accept on; #nginx收到一个新连接通知后接受尽可能多的连接。
3、http模块中配置内容
tcp_nopush on; #在一个数据包里发送所有头文件,而不一个接一个的发
tcp_nodelay on; #不缓存数据,而是一段一段的发送
client_max_body_size 2000m; #文件上传大小限制
keepalive_timeout 650; #文件上传时间限制
autoindex off; #不允许列出整个目录,降低代码被盗用风险,默认是关闭状态,为保证处于关闭状态,还是设置确认为好,
server_tokens off; #隐藏Nginx版本号