• Nginx 服务优化与防盗链


    Nginx隐藏版本号、服务名

    1. 改配置文件

    HTTP模块中添加命令:
    server_tokens off;

    关闭防火墙安全机制

    将配置文件备份一份,再进行配置 

     版本号已隐藏

    2. 改源码包

    /opt/nginx-1.22.0/src/core/nginx.h
    #define NGINX_VERSION "1.1.1"   #修改版本号 
    #define NGINX_VER "burun/" NGINX_VERSION
    重新编译安装,将之前off改为on

     版本号已修改

    二、日志分割

    #!/bin/bash


    #获取日期
    d=$(date +%Y-%m-%d)
    #定义存储目录
    dir="/usr/local/nginx/logs"

    #分割日志
    logs_file="/usr/local/nginx/logs/access.log"
    logs_error='/usr/local/nginx/logs/error.log'

    #定义nginx的pid文件
    pid_file='/usr/local/nginx/run/nginx.pid'

    if [ ! -d "$dir" ]
    then
       mkdir -p $dir
    fi

    #移动日志并且重命名

    mv $logs_file ${dir}/access_${d}.log
    mv $logs_error ${dir}/error_${d}.log

    #发送信号给nginx主程序,让他生成一个新的日志文件

    kill -USR1 $(cat ${pid_file})
     

    #日志文件清理的命令
    find ${dir} -mtime +30 -exec rm -rf {} \;

    给脚本赋权执行

    此时log文件里生成了两个新的文件,这就是分割日志 

    三、Nginx的页面压缩

    页面压缩可以节约带宽,提高用户的访问速度
    压缩的功能是默认自带的,可以不取消注释
    但是需要添加压缩细节,需要把gzip打开后进行配置

    修改配置文件

     取消注释,开启gzip的压缩功能

    接着添加代码:

     gzip_min_length 1k;        

    #最小压缩文件的大小      
    gzip_buffers 4 64k; 

    #压缩缓冲区,大小为4个64K缓冲区,Nginx 会使用 4 个 64KB 大小的缓冲区来存储压缩后的数据。
    gzip_http_version 1.1;    

    #压缩版本,默认为1.1
    gzip_comp_level 6;        

    #压缩比率(压缩等级为1-9,6是中等等级,也是常用等级)Gzip 压缩级别的范围是 1 到 9,
    其中 1 表示压缩速度最快,但压缩比最低,9 表示压缩速度最慢,但压缩比最高。默认值为 1。
    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;
    #压缩的类型,哪些文档启用压缩功能

    重启服务使配置生效 

    gzip压缩功能已打开

    四、图片缓存

    五、Nginx的并发设置

    六、配置防盗链

    valid_referers :设置信任的网站,可以正常使用图片;
    none:允许没有http_refer的请求访问资源(根据Referer的定义,它的作用是指示一个请求是从哪里链接过来的,如果直接在浏览器的地址栏中输入一个资源的URL地址,那么这种请求是不会包含 Referer 字段的),如 http://www.kgc.com/game.jpg
    我们使用 http://www.kgc.com 访问显示的图片,可以理解成 http://www.kgc.com/game.jpg 这个请求是从 http://www.kgc.com 这个链接过来的。
    blocked:允许不是http://开头的,不带协议的请求访问资源; 
    *.kgc.com:只允许来自指定域名的请求访问资源,如 http://www.kgc.com

    $invalid_referer:只要不是valid_referers设置现任的网站,都为true

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

    网页准备:
    Web源主机(192.168.146.20)配置:
    cd /usr/local/nginx/html
    将game.jpg、error.png文件传到/usr/local/nginx/html目录下
    vim index.html
    ...... 


  • 相关阅读:
    用信号量实现进程互斥, 同步, 前驱关系
    POJ 3264 Balanced Lineup 线段树 / 平方分割
    Redis从简单到高级的总结(超详细)
    Nacos 2.1.1 正式发布,真心强
    北大肖臻老师《区块链技术与应用》系列课程学习笔记[12]以太坊-账户
    RK3399驱动开发 | 15 - RTC实时时钟芯片HYM8563S调试(基于linux5.4.32内核)
    Java集合 —— Map集合
    设计模式-代理模式-笔记
    基于SpringBoot+MySQL的科研学术论文资讯推送系统
    Linux 系统常用命令总结
  • 原文地址:https://blog.csdn.net/as958361025/article/details/133795459