Nginx安全优化与性能调优

目录

  • Nginx基本安全优化隐藏Nginx软件版本号信息更改源码隐藏Nginx软件名及版本号修改Nginx服务的默认用户
  • 修改参数优化Nginx服务性能优化Nginx服务的worker进程数1.优化NGINX进程对应的配置2.优化Nginx进程个数的策略3.查看Web服务器CPU硬件资源信息4.修改服务器Nginx配置绑定不同的Nginx进程到不同的CPU上Nginx事件处理模型优化调整Nginx单进程允许的客户端最大连接数配置Nginx worker进程最大打开文件数开启高效文件传输模式1.设置参数: sendfile on;2.设置参数:tcp_nopush on;限制文件上传大小配置gzip压缩实现性能优化Nginx gzip压缩功能介绍Nginx gzip压缩的优点需要和不需要压缩的对象参数介绍及配置使用增加http accept-ranges头来提高性能
  • Nginx日志相关优化与安全Nginx access日志切割
  • Nginx图片及目录防盗链解决方案
  • Nginx防爬虫优化robots.txt机器人协议介绍Nginx防爬虫优化配置

Nginx基本安全优化

隐藏Nginx软件版本号信息

一般来说,软件的漏洞都和版本有关,这个很像汽车的缺陷,同一批次的要有问题就都有问题,别的批次可能就都是好的。因此,我们应尽量隐藏或者消除Web服务对访问用户显示各类敏感信息(例如Web软件名称以及版本号等信息),增加恶意用户攻击服务器的难度,从而加强Web服务器的安全性。

我现在在我的CentOS7上编译安装了Nginx,当我们请求服务器的时候我们可以通过chrome的调试工具看到我们请求的服务器Nginx的版本,如下图所示

Nginx安全优化与性能调优_第1张图片

假如Nginx1.18.0这个版本有漏洞,那么恶意用户就可以根据这个信息通过漏洞来攻击我们的服务器

现在我们来在Nginx的配置文件nginx.conf中增加一项参数来隐藏Nginx的版本,这样用户就不知道我们用的是哪个版本的Nginx了。

在nginx.conf中的http标签段内加入server_tokens off;参数,如下图所示

Nginx安全优化与性能调优_第2张图片

现在我们重启服务器再次访问可以看到Nginx版本号已经看不到了

Nginx安全优化与性能调优_第3张图片

更改源码隐藏Nginx软件名及版本号

隐藏了Nginx版本号后,更进一步,可以通过一些手段把Web服务软件的名称也隐藏起来,或者改为其他Web服务软件名以迷惑恶意用户。Nginx并不提供修改Nginx软件名称的参数和入口,需要修改源码才行,这里只是提供一个思路,修改源码需慎重,防止修改源码导致服务器不能正常运行。其它服务器软件同理。修改方法自行百度。

修改Nginx服务的默认用户

为了让Web服务更安全,要尽可能地改掉软件默认的配置,比如端口、用户等。

下面就来更改Ninx服务的默认用户。

首先,查看Ninx服务对应的默认用户。一般情况下,Ninx服务启动后,默认使用的用户是nobody,查看默认的配置文件命令如下:

grep '#user' nginx.conf.default

为了防止黑客猜到这个Web服务的用户,我们需要更改为特殊的用户名,例如www、nginx或者特殊点的itbsl,但是这个用户必须是系统里事先存在的,下面以nginx用户为例进行说明

(1)为Nginx服务创建新用户

为Nginx服务建立新用户的操作过程如下:

useradd nginx -s /sbin/nologin -M # 不需要有系统登录权限,应当禁止其登录能力

(2)配置Nginx服务,让其使用刚建立的Nginx用户

更改Nginx服务默认使用的用户,方法有两种

你可能感兴趣的:(sql,java,spring,数据库开发,数据库架构)