服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - Nginx - Nginx服务性能和安全优化

Nginx服务性能和安全优化

2023-10-27 16:45TaciturN' Nginx

本文主要为大家介绍下Nginx中对服务器性能及安全的一些优化设置,有需要的朋友可以参考下

一、配置Nginx隐藏版本相关信息

1.隐藏版本号

修改 nginx.conf 文件,在http块中添加字段后,重载服务

Nginx服务性能和安全优化

获取报文信息并查看(浏览器查看或使用命令)

Nginx服务性能和安全优化

2.修改版本号及相关信息

如果做了上一步在nginx.conf 中添加了 server_tokens off 需要注释掉!!

修改源码信息(修改完需要重新编译安装)

Nginx服务性能和安全优化

(修改的只是显示的信息,并不是真正修改版本和信息) 

Nginx服务性能和安全优化

重新编译安装

cd /opt/ngnginx-1.12.0/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

make && make install

systemctl restart nginx.service

获取报文信息并查看

Nginx服务性能和安全优化

二、修改Nginx运行时的属主和属组

修改 nginx.conf 文件

Nginx服务性能和安全优化

查看nginx运行用户发生改变(默认为nobody) 

Nginx服务性能和安全优化

三、配置Nginx网页缓存时间

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

        一般针对静态网页设置,对动态网页不设置缓存时间。

修改 nginx.conf 文件 ,在http块 或server块 或location块中添加 expires 参数

# ~ 代表使用正则表达式,后面匹配的是以|分割的字符结尾的文件
location ~ \.(gif|jpg|jpeg|png|mp4|mp3|txt)$ {       
            root   html;
            expires 1d;    #代表缓存时间为1天
}

Nginx服务性能和安全优化

Nginx服务性能和安全优化

添加图片,访问测试

Nginx服务性能和安全优化

查看报文信息,86400代表1天,设置生效

Nginx服务性能和安全优化

四、配置Nginx站点日志分割

编写脚本(因为放在后一天凌晨执行,所以获取前一天的日期)

Nginx服务性能和安全优化

执行并测试

Nginx服务性能和安全优化

加入计划任务

Nginx服务性能和安全优化

五、设置Nginx长连接及超时时间

keepalive_timeout

        指定KeepAlive的超时时间(timeout)。指定每个tcp连接最多可以保持多长时间,服务器将会在这个时间后关闭连接。

        Nginx的默认值是65秒,有些浏览器最多只保持60秒,所以可以设定为 60秒。若将它设置为0,就禁止了keepalive连接。

        第二个参数(可选的)指定了在响应头keepalive_timeout 中的time值。这个头能够让一些浏览器主动关闭连接,这样服务器就不必去关闭连接了。没有这个参数,Nginx不会发送Keep-Alive响应头。

 

client_header_timeout

        客户端向服务端发送一个完整的 request header的超时时间。如果客户端在指定时间内没有发送一个完整的 reqpuest header,Nginx 返回HTTP 408(RequestTimed out ) 。

 

client_body_timeout

        指定客户端与服务端建立连接后发送request body的超时时间。如果客户端在指定时间内没有发送任何内容,Nginx返回 HTT 408(Request Timed out) 。

修改 nginx.conf 文件

Nginx服务性能和安全优化

检查语法并重启服务

Nginx服务性能和安全优化

访问并查看请求报文(保持连接,且浏览器超时时间为50s)

Nginx服务性能和安全优化

六、配置Nginx网页压缩

Nginx的ngx http gzip module压缩模块提供对文件内容压缩的功能。

允许Nginx服务器将输出内容在发送客户端之前进行压缩,以节约网站带宽,提升用户的访问体验,默认已经安装,可在配置文件中加入相应的压缩功能参数对压缩性能进行优化。

gzip on;                     取消注释,开启gzip压缩功能
gzip_min_length 1k; 最小压缩文件大小 1k
gzip_buffers 4 64k; 压缩缓冲区,大小为4个64k缓冲区
gzip_http_version 1.1; 压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
gzip_comp_level 6; 压缩比率(1~9等级)
gzip_vary on; 支持前端缓存服务器存储压缩页面

gzip_types text/plain text/javascript application/x-javascript text/css text/xml

application/xml application/xml+rss image/jpg image/jpeg image/png image/gif application/x-httpd-php application/javascript application/json;

压缩类型,表示哪些网页文档启用压缩功能 

Nginx服务性能和安全优化

检查语法并重启服务

Nginx服务性能和安全优化

准备页面并访问测试

Nginx服务性能和安全优化

七、配置Nginx防盗链

1.模拟盗链

192.168.116.10为www.abc.com; 192.168.116.20为www.def.com;

www.def.com模拟盗取www.abc.com的网页图片;

使用windows主机访问两个网站。

配置域名解析(为了方便这里修改/etc/hosts文件)

Nginx服务性能和安全优化

Nginx服务性能和安全优化

Nginx服务性能和安全优化

在www.def.com的首页添加图片

Nginx服务性能和安全优化

在www.abc.com的首页盗取此站点图片

Nginx服务性能和安全优化

2.配置防盗链并测试

修改 nginx.conf 文件,如果有缓存配置,需要在缓存配置之前加上

location ~* \.(gif|jpg|jpeg|png|swf)$ { ... }

~代表使用正则表达式 ,*代表不区分大小写(location选项中不能包含防盗链图片的格式)

vaild_referers ... 

代表设置受信任的网站,匹配到的将不会做防盗链。

none

允许没有http_refer的请求访问资源(根据Referer的定义,它的作用是指示一个请求是从哪里链接过来的,如果直接在浏览器的地址栏中输入一个资源的URL地址,那么这种请求是不会包含Referer字段的),如http://www.def.com/error.webp。

blocked

允许不是http://开头的,不带协议的请求访问资源。

 

$invalid_referer

就是vaild_referers指定的站点范围取反,即非信任站点

if判断当地址满足$invalid_referer的范围,则指定条件中的语句,

即 rewrite ^/ http://www.def.com/error.webp;  重写访问的url为指定url。

Nginx服务性能和安全优化

Nginx服务性能和安全优化

在www.def.com下上传防盗链的图片

Nginx服务性能和安全优化

再次访问测试www.abc.com,变成了指定的防盗链图片

Nginx服务性能和安全优化

到此这篇关于Nginx服务性能和安全优化的文章就介绍到这了,更多相关内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文地址:https://blog.csdn.net/weixin_58544496/article/details/127101204

延伸 · 阅读

精彩推荐