Nginx服务性能和安全优化

一、配置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,变成了指定的防盗链图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值