Nginx——优化与防盗链

一.配置Ngin隐藏版本号

1.隐藏版本号,避免安全漏洞
2.Nginx隐藏版本号方法
   修改配置法
   修改源码法

二.修改配置文件法

1.将Nginx配置文件中server-tokens选项改为off

 []vim /usr/local/nginx/conf/nginx.conf

在这里插入图片描述

 []nginx -t;    //检查语法

2.重启服务,访问网络使用curl -I http://localhost命令检测

[]systemctl restart nginx

在这里插入图片描述

3.方法二

vim /usr/local/nginx/conf/nginx.conf
http{
server_tokens on;           //修改此选项为on
}

vim /opt/nginx-1.12.2/src/core/nginx.h
在这里插入图片描述
cd /opt/nginx-1.12.2
make && make install
使用curl -I http://localhost命令检测
在这里插入图片描述

三.修改Nginx用户和组

1.Nginx运行时进程需要有用户和组的支持,以实现对网站文件的读取进行访问控制。

2.Nginx默认使用Nobody用户账号与组账号。

3.修改方法

   编译安装时指定用户和组
   修改配置文件指定用户和组

4.编译安装时指定

   ./configure  --user=nginx  --group=nginx

5.修改配置文件法指定

  1.创建新的用户账号,如nginx
  2.修改主配置文件user选项,指定用户账号和组账号
  3.重启nginx服务,使配置生效
  4.使用ps aux命令查看nginx的进程信息,验证运行用户账号改变效果。

 命令过程:
 vim /usr/local/nginx/conf/nginx.conf

在这里插入图片描述
ps aux | grep nginx ##查看效果
在这里插入图片描述

四.配置Nginx网页缓存时间

1.配置意义

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

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

3.配置过程

     []vim /usr/local/nginx/conf/nginx.conf
     location ~\.(gif|jpg|jepg|png|bmp|ico)${
                     root html;
                     expires 1d;               //缓存时间一天
     }
     
     cd /user/loca/nginx/html
     vi index.html
     <img src="a.png.png" />                //在body里面加入
     systemctl restart nginx

4.测试

  在浏览器里面输入IP地址,使用抓包工具进行抓。

在这里插入图片描述
在这里插入图片描述

5.设置方法

       修改配置文件,在http段,或者server段,或者location段加如特点内容的过期参数。

五. 实现Nginx的日志分割

1.随着Nginx运行时间的增加,日志也会增加,为了方便掌握Nginx运行状态,需要时刻关注Nginx日志文件。
2.太大的日志文件对检测是一个大灾难。
     解决方式:定期进行日志分割
3.Nginx自身不具备日志切割处理的能力,但可以通过Nginx信号控制功能的脚本实现日志的自动切割。
4.通过Linux的计划任务周期性进行日志切割
5.编写脚本进行日志切割的思路
          1.设置时间变量
          2.设置保存日志的路径
          3.将目前的日志文件进行重命名
          4.重建新日志文件
          5.删除时间过长的文件
          6.设置cron任务,定期执行脚本,自动进行日志分割。

1.配置过程

    []vim /opt/fenge.sh
    #!/bin/bash
    #日志分割
    d=$(date -d "-1 day" "+%Y%m%d")
    logs_path="/var/log/nginx"
    pid_path="/usr/local/nginx/logs/nginx.pid"
    [ -d $logs_path ] || mkdir -p $logs_path
    mv /usr/local/nginx/logs/access.log ${logs_path}/aa.com.access.log-$d
    kill -HUP $(cat $pid_path)                          //重新加载服务
    find $logs_path -mtime +30 | xargs rm -rf            //强力删除,-mtime:当修改文件的内容数据时,就会更新这个时间。
     
                                          // 补充:-exec:删除后面的内容,加上i,是立即执行的意思
                                         //  例:-exec rm -i {}\

在这里插入图片描述

 which sh
   crotab -e
    0   1  *  *  *  /usr/bin/sh     /root/fenge.sh
  //分钟 时 日 月 星期

在这里插入图片描述

六.配置Nginx实现连接超时

为避免同一客户端长时间占用连接,造成资源浪费,可设置相应的连接超时参数,实现控制连接访问的时间。

1.超时参数

 1.keep_header_timeout 65 100:前面参数服务器主动关闭的超时时间,后面参数是客户机浏览主动关闭的时间。
 2.client_header_timeout 80:等待客户端发送请求头的超时时间,超过发送408错误。
 3.client_body_timeout 80:设置客户端发送请求体超时时间。

2.配置命令

vi /etc/nginx.conf

keepalive_timeout  65 180;
client_header_timeout 80;
client_body_timeout 80;

在这里插入图片描述

3.测试

重启服务,在浏览器输入IP地址,使用抓包工具进行抓包。
systemctl stop nginx.service
systemctl start nginx.service
在这里插入图片描述

七.更改Nginx运行进程数

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

1.配置方式

  修改配置文件
  修改进程配置参数

2.修改配置文件的worker_processes参数

  1.一般设为cpu的个数或者核数
  2.在高并发情况下可设置为cpu个数或者或者核数的2倍

3.增加进程数,可减少系统的开销,提升服务速度。

4.配置命令

vi /usr/local/nginx/conf/nginx.conf
在这里插入图片描述
ulimit -n 65535 >> /etc/rc.local //修改最大限制
nginx -t //检查语法

5.验证

systemctl restart nginx.service
ps aux | grep nginx

在这里插入图片描述

八.配置网页压缩功能

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

1.压缩参数

1.gzip on:开启gzip压缩输出
2.gzip_min_length 1k:设置允许压缩的页面最小字节数
3.gzip_buffers 4 16k:申请4个单位为16k的内存作为压缩结果 流缓存,默认值是申请与原始数据大小相同的内存空间来存储 gzip压缩结果
4.gzip_http_version 1.0:设置识别http协议版本,默认是1.1,目前大部分浏览器已经支持gzip解压,但处理较慢,也比较消耗服务器CPU资源
5.gzip_comp_level 2:指定gzip压缩比,1压缩比最小,处理速度最快;9压缩比最大,传输速度快,但处理速度最慢 。              
6.gzip_types text/plain:压缩类型,对哪些网页文档启用压缩功能
7.gzip_vary on:让前端缓存服务器缓存经过gzip压缩的页面

2.配置命令

vim /usr/local/nginx/conf/nginx.conf
gzip  on;                       //开启gzip压缩功能
gzip_min_length 1k;        //压缩阈值
gzip_buffers 4 16k;        //buffer 大小为4个16k缓冲区
gzip_http_version 1.1;    //压缩版本
gzip_comp_level 6;      //压缩比率,最小为1,最大为9

gzip_types text/plain application/x-javascript text/css image/jpg image/jpeg image/png image/gif application/xml text/javascript application/x-httpd-php application/ javascript application/json;

gzip_disable "MSIE [1-6]\.";       //配置禁用gzip条件,支持正则,表示ie6以下的不启用gzip
gzip_vary on;      //选择支持very header 可以让前端的缓存服务器缓存经过gzip压缩的页面。

nginx -t            //测试语法
systemctl restart nginx     //重启服务

3.测试

浏览器输入IP地址,使用抓包工具进行抓包。

在这里插入图片描述

九.配置Nginx防盗链

1.配置说明

1. ~*\.(jpg|gif|swf)$:匹配以.jpg或.gif或.swf结尾的不区分大小写的文件
2.valid_referers:设置信任的网站,即能引用相应图片的网站                  
3.网址或者域名: referer中包含相关字符串的网址
4.if语句:如果链接的来源域名不在valid_referers所列出的列表中,$invalid_referer为1,则执行后面的操作,即进行重写或返回403页面

2.配置命令

vim /usr/local/nginx/conf/nginx.conf
location ~* \.(gif|swf||jpg)$ {
       valid_referers none blocked *.aa.com aa.com 192.168.52.13;
       if ($invalid_referer) {
       rewrite ^/ http://192.168.52.13/error.png;
       }

在这里插入图片描述
客户机上
在这里插入图片描述

3.测试

浏览器输入盗链地址,192.168.52.11
在这里插入图片描述

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 黑客帝国 设计师:上身试试 返回首页