• Nginx作为静态资源web服务


     一、CDN

    1、定义:

    内容分发的逻辑网络。

    2、作用:

    CDN能做到传输延时的最小化。

    CDN请求示意图如下:

    二、静态资源需要配置的一些语法模块。

    1、配置语法 - 文件读取

    Syntax : sendfile on | off;
    Default : sendfile off;
    Context : http,server,location,if in location

    当然现在随着Nginx和Linux的版本不断更新,已经出现了异步文件读取的模块:--with-file-aio模块。

    2、tcp_nopush

    配置语法

    Syntax : tcp_nopush on | off;
    Default : tcp_nopush off;
    Context : server,location;

    作用:

    sendfile开启的情况下,提高网络包的传输效率。(不是很着急的将包推送给客户端,就像是发送快递一样,来了一个包裹不着急送出去,攒一攒,等有了10个包裹后,找一个快递员一次性就送出去,这样是不是就提高了送的效率呀?)

    场景:

    在大文件传输的时候,推荐打开。

    3、tcp_nodelay

    配置语法

    Syntax : tcp_nodelay on | off;
    Default : tcp_nodelay on;
    Context : server,location;

    nodelay和nopush是相对应的配置语法。

    作用:

    必须是在 keeplive (长连接)下,才能提到提高网络包的传输实时性的作用。

    场景:

    要求实时性比较高的场景。

    三、压缩相关(也是静态资源配置)

    1、gzip

    配置语法

    Syntax : gzip on | off;
    Default : gzip off;
    Context : server,location,if in location;

    作用:

    压缩传输。

    服务端进行压缩,浏览器进行解压。

    压缩和解压能减少网络传输带宽的消耗,既可以减少服务端的带宽资源,也可以减小文件传输的大小,从而实现传输的实时性。

    2、压缩比例

    配置语法

    Syntax : gzip_comp_level level;
    Default : gzip_comp_level 1;    //压缩比率越高,文件越小,但是也越耗服务器性能。
    Context : server,location;

     3、压缩HTTP协议的版本。

    配置语法

    Syntax : gzip_http_version 1.0 | 1.1;
    Default : gzip_http_version 1.1;
    Context : http,server,location;

    4、拓展Nginx压缩模块

    a、http_gzip_staic_module - 预读gzip功能。

    html.gz是gzip的预压缩文件,如果有的话,就把这个1.html.gzip返回给用户。这对硬盘的要求比较高。

    b.http_gunzip_module -应用支持 gunzip的压缩方式。为了支持很少一部分浏览器无法支持gzip压缩和解压功能而需要用到的。

    四、压缩先关示例

    1、对传输图片的压缩

    配置

     

    location ~ .*.(jpg|gif|png)$ {
        gzip on;
        gzip_http_version 1.1;
        gzip_comp_level 6;
        gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif img/png;
        root /opt/app/code/images;
    }

    访问  http://192.168.0.133/qq.jpg 

    当然这里需要自行上传图片到自己服务器的指定目录。

    注:当文件超过1M后,压缩个几kb,在浏览器上面不容易看出来,可以只传个几百kb的图片,更容易观察。

     

    2、对传输文件的压缩

    配置

    location ~ .*.(txt|xml)$ {
        gzip on;
        gzip_http_version 1.1;
        gzip_comp_level 1;
        gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif img/png;
        root /opt/app/code/doc;
    }

     然后访问 http://192.168.0.133/access.txt

    这里可以将 access.log 复制过来改个名字。

    3、下载预压缩文件

    配置

    location ~ ^/download {
        gzip_static on;
        tcp_nopush on;
        root /opt/app/code;
    }

     然后将 qq.jpg先进行一个预压缩。

    如果没配置  gzip_static on;的话,服务器会报 404的错误。

    开启 gzip功能后再次访问该地址,就可以正常下载该文件了。

    本文为袋鼠学习中的总结,如有转载请注明出处:https://www.cnblogs.com/chrdai/protected/p/11335015.html

  • 相关阅读:
    OpenCV 实现图像拼接例子
    XML 可扩展标记语言
    XML和YAML的区别与使用方法
    OpenCV 感兴趣区域ROI和logo添加技术
    OpenCV 详解掩膜mask
    OpenCV 读写xml和yml文件
    OpenCV 如何生成能在无OpenCV环境下运行的exe
    OpenCV 图像拼接和图像融合技术
    OpenCV 特征检测和特征匹配方法汇总
    OpenCV 图像矫正技术深入探讨
  • 原文地址:https://www.cnblogs.com/chrdai/p/11335015.html
Copyright © 2020-2023  润新知