Nginx优化

一、Nginx服务优化

1.1 隐藏版本号

        为了防止攻击者根据已知服务的版本的漏洞进行攻击,有两种方式可以隐藏版本号:

        1.1.1 直接修改主配置文件

        在nginx的主配置文件中的http区域中添加“server_tokens off”文本,以后的访问即可隐藏版本号。

        1.1.2 修改源代码

        若nginx使用的是源代码安装,则可以直接修改源代码文件“/nginx源代码包目录/src/core/nginx.h”文件。

1.2 修改用户和组

        Nginx运行时进程需要有用户与组的支持,用以实现对网站文件读取时进行访问控制。主进程由root创建,子进程由指定的用户与组创建。

        修改用户和组的方法也有两种,一是适用源代码安装的nginx,在配置时指定用户和组;二是修改nginx的主配置文件,找到里面的“user”字符,在后面指定用户和组。

1.3 配置网页缓存时间

        通过设置缓存时间,可以加快访问速度,避免重复的请求,一般缓存的都是静态网页。配置方法是在nginx的主配置文件,找到location,在里面添加"expires"字符并设置缓存时间(s秒、m分钟、h小时、d天、w日期、M月等)。

        配置完成后,客户端在访问是,服务器就可以缓存请求的文件指定的时间,可以查看浏览器中开发工具中显示的响应报文的Expires和Data字段或Cache-Control字段,查看缓存时间。

1.4 日志切割

        nginx没有自带的日志分割工具,可以适用第三方日志分割工具或自定义脚本。下面以自定义脚本为例,大致的逻辑为:

①重命名当前日志文件,最好将当前日期加入到日志文件名中。

②重载nginx服务,nginx为自动生成新的日志文件。

③使用计划任务实现自动化。

 例如

 1.5 设置连接超时

        为了避免同一个用户长时间占用连接,需要设置定时断开连接。具体的配置在nginx的主配置文件中,找到“keepalive_timeout”字符,可以同时设置服务器超时断连时间和客户端的超时断连时间,以空格分隔,客户端的超时断连设置只会在一部分浏览器中生效。

        配置完成后重载nginx服务,在浏览器中访问时,就可以看到开发工具中的响应报文中有Keep-Alive字段,此字段只显示客户端超时断连的值。

二、Nginx深入优化

2.1 配置网页压缩

        nginx的ngx_http_gzip_modulle模块提供了压缩功能,默认会加载该模块,但并不启用功能。在配置文件中找到"gzip"字符,将它的注释去掉即可启用该功能。还有其他更精细的配置:

gzip_min_length用于设置允许压缩的页面的最小字节数

gzip_buffers n mK

表示申请n个单位为mK的内存作为压缩结果流缓存,默认值是申请与原数据大小相同的内存空间来存储gzip压缩结果。
gzip_http_version用于设置识别http协议版本,默认是1.1。
gzip_comp_level用来指定gzip压缩比,1最小,9最大。
gzip_types text/plain压缩类型,是对哪些网页文档启用压缩功能。
gzip_vary可以让前端的缓存服务器缓存经过压缩的页面,设置为"on"是开启。

         配置完成后重载nginx服务,在浏览器中访问时,就可以看到开发工具中的响应报文中有“Content-Encoding”字段,此字段会显示gzip。

2.2 更改进程数

        在高并发环境中,需要启动更多的Nginx进程以保证快速响应,用以处理用户的请求避免造成阻塞。可以通过修改nginx的主配置文件中的"worker_processes"参数,来设置“worker processes”进程的数量,一般设为CPU的个数或者核数。同时“worket_connections”参数可以设置一个“worker processes”能够处理的并发连接的数量。

        默认情况下,Nginx的多个进程可能更多的跑在一颗CPU上。为了充分利用硬件多核多CPU,可以分配不同的进程给不同的CPU处理。在一台4核CPU服务器上,可以设置每个进程分别由不同的CPU核心处理,达到CPU的性能最大化。

2.3 配置防盗链

        为了防止服务器的静态资源被其他的网站通过链接的形式调用,需要防盗链这种技术。通过在nginx的主配置文件中的不同站点区域中添加对应的防盗链规则,可以指定对特定资源的请求设置规则防止别的网站盗用此类资源,比如图片、视频等。

 其中的invalid_referer为nginx自带变量。

  • 15
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值