Linux服务器性能优化+安全配置方案参数

2019-06-11  本文已影响0人  不是王大锤

一、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版本号
上一篇下一篇

猜你喜欢

热点阅读