nginx 优化

发布时间 2023-06-27 13:53:23作者: 纸签

目录

一、隐藏版本号 

二、修改用户和组 

三、缓存时间 

四、日志切割 

五、连接超时 

六、更改进程数 

七、网页压缩 

八、防盗链 

九、nginx事件处理模型优化 

十、客户端最大连接数 

十一、最大打开文件数 

十一、开启高效文件传输模式 

十二、 expires缓存功能 

十三、URL访问控制 

十四、IP访问控制 

十五、限制HTTP的请求方法 

十六、Nginx运行CPU亲和力 

 

 

 

 

 

一、隐藏版本号 

     1.介绍

                  一般来说,软件的漏洞都和版本相关,所以我们要隐藏或消除web服务对访问用户显示的各种敏感信息隐藏版本号可以将版本号隐藏起来,防止黑客恶意攻击,根据你的服务版本号可以知道相关bug,进行针对行攻击。

    2.方法

                  (1)直接关闭版本号

                  (2)修改源码包版本号,重新编译安装。

 

 

二、修改用户和组 

    1.介绍

                  修改nginx服务的默认用户,将nobody改为nginx nginx,nginx是程序用户,不可以登录,增加安全性。

       2.方法

                  (1)直接在nginx主配置文件中修改。

                  (2)直接在编译nginx的时候指定用户和用户组命令

 

 

三、缓存时间 

    1.介绍

                  当Nginx将网页数据返回给客户端后,可设置缓存的时间,以方便在日后进行相同内容的请求时直接返回,避免重复请求,加快了访问速度,一般针对静态网页设置,对动态网页不设置缓存时间。

         2.方法

                  (1)加入新的 location,指定缓存对象,指定缓存时间。

 

 

四、日志切割 

     1.介绍

                  用户请求一个软件时,绝大多数软件都会记录用户的访问情况,nginx软件目前没有类似apache通过cronolog或者rotatelog对日志分隔处理的功能,但是,运维人员可以通过利用脚本开发、nginx的信号控制功能或reload重新加载,来实现日志的自动切割、轮询,方便开发人员和运维人员的查看日志。

      2.方法

                  (1)使用脚本进行切割,可以以时间为切割依据。

 

 

五、连接超时 

  1.介绍

                  HTTP有一个KeepAlive模式,它告诉web服务器在处理完一个请求后保持这个TCP连接的打开状态。若接收到来自同一客户端的其它请求,服务端会利用这个未被关闭的连接,而不需要再建立一个连接。KeepAlive 在一段时间内保持打开状态,它们会在这段时间内占用资源。占用过多就会影响性能。

        2.方法

                  (1)设置三次握手的超时时间,等待客户端发送请求头的超时时间会送408 错误,设置客户端发送请求体的超时时间。

 

 

六、更改进程数 

  1.介绍

                  在高并发场景,需要启动更多的Nginx进程以保证快速响应,以处理用户的请求,避免造成阻塞

     2.方法

                  (1)修改为核数相同或者2倍,设置每个进程由不同cpu处理。

 

 

七、网页压缩 

   1.介绍

                  Nginx的ngx_http_gzip_module压缩模块提供对文件内容压缩的功能

允许Nginx服务器将输出内容在发送客户端之前进行压缩,以节约网站带宽,提升用户的访问体验,默认已经安装

      2.方法

                  可在配置文件中加入相应的压缩功能参数对压缩性能进行优化

 

 

八、防盗链 

 

 

 

九、nginx事件处理模型优化 

 

十、客户端最大连接数 

 

十一、最大打开文件数 

 

十一、开启高效文件传输模式 

 

十二、 expires缓存功能 

 

十三、URL访问控制 

 

十四、IP访问控制 

 

十五、限制HTTP的请求方法 

 

十六、Nginx运行CPU亲和力