• nginx的优化和防盗链


    nginx隐藏版本号

    1、隐藏版本号:
    bug多。更新版本速度比较快,所以一旦版本号暴露出去,有可能给对方提供攻击的漏洞。在http大模块中修改,不再server中,也不是location。
    server_tokens off;

    2.修改源码文件,重新编译安装:
    源码包里面,修改配置文件
    修改完之后要重新配置,编译和安装
    隐藏版本号打开

    vim nginx.h

    nginx的日志分割:

    nginx没有自带的日志分割功能,
    通过脚本实现日志分割。

    创建定时任务

    网页压缩:

    nginx:
    http_gzip_static_module 可以对文件内容和图片进行压缩的功能,节约宽带,提升用户的访问速度


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

    nginx的图片缓存时间

    可以在日后访问时,不需要经常的向后台请求数据,加快访问速度
    一般是针对静态页面,动态不设置缓存时间。

    连接超时:

    keepalive_timeout 60 -120 ;

    nginx并发设置:

    在高并发的场景下,需要nginx启动更多的进程来保证快速响应。cpu
    根据cpu的核心数,调整nginx的工作进程数。
    work_procersses 4;
    worker_connections 15000;
    60000个
    别忘了修改limits.conf
      8个以上性能降低:反复切换CPU,影响效率

    TIME_WAIT大量出现,该如何优化。

    time_wait是tcp连接状态中的一种,不是报错!出现在四次挥手之后。
    在time_wait状态下, tpc处于连接等待状态,等待有一个持续时间 http1.1会话保持。
    1、确保可靠的关闭连接
    2、避免连接复用。他在连接正常关闭之后,一段时间时间之后,自动消失。而且占用的资源很小,对服务器性能的影响有限。

    vim /etc/sysctl.conf

    net.ipv4.tcp_syncookies = 1
    #表示开SYN cookies
    当出现SYN等待队列溢出时,启用cookies处理syn队列,默认是0。1开启。net.ipv4.tcp_tw_reuse = 1
    #time_wait状态可以重用,一个连接就要占用一个端口,time_wait把所有的端口全部占满了,新的连接请求也不会拒绝。
    net.ipv4.tcp_tw_recycle =1
    #让time_wait尽快回收。
    net.ipv4.tcp_fin_timeout = 60
    所有time_wait 最大的生命周期60秒。

    nginx的内置变量:打印结果

    $remote_addr客户端的ip地址
    $remote_port显示客户端的端口号
    $uri:显示请求的uri
    $host:显示请求的主机名
    $request_method:显示请求的方法。

    重要的变量:

    proxy_set_header X-Forwarded-for $remote_addr
    代理服务器设置这个变量,客户端的真实ip要发送给后端,否则代理服务器地址会被拉入黑名单。proxy_set_header X-Real-IP $remote_addr
    客户端的真实ip,发送给后端,现在所有的网站都会要求客户端请求时,加上真实ip.

    防盗链:防止其他网站盗用本站的图片。
       

         valid_referers none blocked *.kgc.com kgc.com;
            if(  $valid_referer  ) {
               rewrite A/ http://www.kgc.com/error.png; 
    valid_referers:设置信任的网站
    kgc.com www.kgc.com
    *.kgc.com
    none:允许没有http_refer的请求访问资源,请求url里面可以refer
    www.kgc.com/ls.jpg
    blocked:请求网站时,前面可以不带协议
    www.baidu.com
    www.jd.com
    http://www.baidu.com
       if ($valid_referer ){
              rewrite ^ / http://www.kgc.com/error.png;
    }
    如果连接资源不是来自上面valid_referers定义的信任列表,$valid_referer变为true,执行重定向
    rewrite^/http://www.kgc.com/error.png;

  • 相关阅读:
    一键抓取网页的所有图片
    Matlab之显示绘制曲线轨迹命令drawnow
    The list of sources could not be read
    《痞子衡嵌入式半月刊》 第 52 期
    Hadoop2——Hadoop程序实现
    案例分享-智慧景区智能管控系统
    Java客户端_zkclient库操作Zookeeper
    Python加解压文件gzip库操作一文详解
    ​力扣解法汇总623-在二叉树中增加一行
    BDD - SpecFlow BDD 测试实践
  • 原文地址:https://blog.csdn.net/abc13245821907/article/details/133783157