目录
一、配置Nginx隐藏版本相关信息
1.隐藏版本号
2.修改版本号及相关信息
编辑编辑
二、修改Nginx运行时的属主和属组
三、配置Nginx网页缓存时间
四、配置Nginx站点日志分割
五、设置Nginx长连接及超时时间
六、配置Nginx网页压缩
七、配置Nginx防盗链
1.模拟盗链
2.配置防盗链并测试
一、配置Nginx隐藏版本相关信息
1.隐藏版本号
修改 nginx.conf 文件,在http块中添加字段后,重载服务
获取报文信息并查看(浏览器查看或使用命令)
2.修改版本号及相关信息
如果做了上一步在nginx.conf 中添加了 server_tokens off 需要注释掉!!
修改源码信息(修改完需要重新编译安装)
(修改的只是显示的信息,并不是真正修改版本和信息)
重新编译安装
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.conf 文件
查看nginx运行用户发生改变(默认为nobody)
三、配置Nginx网页缓存时间
当Nginx将网页数据返回给客户端后,可设置缓存的时间,以方便在日后进行相同内容的请求时直接返回,避免重复请求,加快了访问速度;
一般针对静态网页设置,对动态网页不设置缓存时间。
修改 nginx.conf 文件 ,在http块 或server块 或location块中添加 expires 参数
# ~ 代表使用正则表达式,后面匹配的是以|分割的字符结尾的文件 location ~ \.(gif|jpg|jpeg|png|mp4|mp3|txt)$ { root html; expires 1d; #代表缓存时间为1天 }
添加图片,访问测试
查看报文信息,86400代表1天,设置生效
四、配置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 文件
检查语法并重启服务
访问并查看请求报文(保持连接,且浏览器超时时间为50s)
六、配置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防盗链
1.模拟盗链
192.168.116.10为www.abc.com; 192.168.116.20为www.def.com;
www.def.com模拟盗取www.abc.com的网页图片;
使用windows主机访问两个网站。
配置域名解析(为了方便这里修改/etc/hosts文件)
在www.def.com的首页添加图片
在www.abc.com的首页盗取此站点图片
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。
在www.def.com下上传防盗链的图片
再次访问测试www.abc.com,变成了指定的防盗链图片文章来源:https://www.toymoban.com/news/detail-507672.html
文章来源地址https://www.toymoban.com/news/detail-507672.html
到了这里,关于Nginx服务性能和安全优化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!