nginx笔记第二章(高级篇)--2--

一、进一步压缩请求数

  1.conat模块原理        

      location /static/css/ {
          concat on;          #是否打开concat
          concat_max_files 20;    #并发打包发送文件的最大个数
      }
    
      location /static/js/ {
          oncat on;
          concat_max_files 30;
      }

 

    在html页面里的设置

      

    将两个css文件写在一个link中,以实现请求的合并。

  concat模块具体内容请点击:                         --------------------------点击进入---------------------------------

 

二、高并发系统资源静态化方案

  

 

        

 

  1.ssi模板模块和命令

         具体的参数请看官方文档   

      location / {
          ssi on;          #是否打开concat
          si_last_modified on | off;    #文件在磁盘中的存储时间为准
        ssi_silent_errors on | off;    #是否报ssi语法错误信息
      }

   2.rsync加inotify

         ----------------------------------------请看视频89--96集----------------------------------------------------

 

三、多级缓存 

  总体框架

 

 

   1.浏览器缓存

     1.1协商缓存(etag利用hash算法取文件的大小和时间算出的)

      

 

      

      1.2强制关闭协商缓存

      (1)设置last-modified为空            (2)将if_nidified_since关掉     

      

      1.3强制缓存设置(不向服务端发请求)(只有首次访问有效,刷新无效)

        expires过期时间,过了时间之后,才能再向服务器发请求。再此之前都是读取本地缓存文件。

        

        cache-control,和expires配合使用。且它的优先级更高。

        

        

 

        将请求响应头加入 

 

       

 

   2.CDN缓存   

      首先,cdn可以理解为一个普通缓存,如代理缓存或者说边缘缓存,即便不关心用户的具体地理位置,也应该考虑使用cdn的代理缓存来提高用户体验。

          简单而言,代理缓存会缓存你网站的一些页面,通过缓存来传输静态内容非常的快。

 

     2.1 GEOIP依据地区阻隔用户的模块

      如果对于一些云DNS智能解析不信任,按照下面方法自己配置。

      数据库下载地址:----------------------------------点击进入--------------------------------------------

         软件下载地址:   GitHub - maxmind/libmaxminddb: C library for the MaxMind DB file format

      模块下载地址:https://github.com/leev/ngx_http_geoip2_module

       具体内容请看视频104--106集:https://www.bilibili.com/video/BV1yS4y1N76R?p=104&vd_source=41b5c423600738f0db4c23b2451141a4

    

  3.1代理缓存(硬盘缓存)

    3.1正向代理缓存(nigix作为跳板)这种方式很少有人去用

      

 

    3.2反向代理缓存

        

          

          

 

        # levels=1:2   前面的1是一级目录所用字符数,后面的2是二级目录所用字符数,效果如下图

            

 

        # inactive  表示缓存存活时间

        #  max_size  表示最大储存容量大小 

        proxy_cache_path /ngx_tmp levels=1:2 keys_zone=test_cache:100m inactive=1d max_size=10g ;
        server {
              listen80;
              server_name localhost;
              location / {
                proxy_pass http://httpget;
                add_header rginx-Cache "$upstream_cache_status";   #判断缓存是否开启

                proxy_cache test_cache;          #对应上面的keys_zone名称
                proxy_cache_valid 1h;    #每个一个小时向上游服务器发请求更新缓存

                root html;

            }

        }  

     缓存清理插件ngx_cache_purge模块

        安装教程请看109集:---------------------------------点击进入--------------------------------------

            

            

          配置实例:

            

            

            

     3.3断点续传range缓存(主要应用与直播或播放器等并发量较大的)

          

 

 

   3.2nignx代理缓存(内存缓存)

       使用较少!!!!!!!!!!!!!!!!!!!!!!!!!! 

   4.外置内存缓存

      简单的说就是增加设备投入。一般管理都用redis。简单一些请求用nignx就可以了。

     进一步提升sendfile元数据的性能

      

      

         

           

     5.上游服务器应用缓存

       

       5.1 nignx+mecache的方式

          请看视频119集:-----------------------------------点击进入-----------------------------------------------

         5.2nignx+redis的方式

            模块和配置地址:GitHub - 开放空间/雷迪斯2-nginx-module: 用于雷迪斯2.0协议的恩金克斯上游模块

 

 

 

 四、nignx QBS限制

     1.jemeter压力测试工具

          下载地址:阿帕奇JMeter - 下载阿帕奇JMeter (apache.org) 需要java8环境。

    2.模块文档(——————模块解读——————

        http://nginx.org/en/docs/http/ngx_http_limit_req_module.html

        

 

     3.漏桶算法原理

         ----------------------------------------123集进入------------------------------------------

     

     4.限速方法

      

        rate带宽速度限速, burst缓冲请求数   ,   conn并发限速。

     

 

 

 

 

 

      

 

posted on 2022-09-18 16:46  leiyunfeng  阅读(17)  评论(0)    收藏  举报