zoukankan      html  css  js  c++  java
  • Nginx作为静态资源web服务之文件读取

    Nginx作为静态资源web服务之文件读取

    文件读取会使用到以下几个配置

    1. sendfile

    使用nginx作为静态资源服务时,通过配置sendfile可以有效提高文件读取效率,设置为on表示启动高效传输文件的模式。sendfile可以让Nginx在传输文件时直接在磁盘和tcp socket之间传输数据。如果这个参数不开启,会先在用户空间(Nginx进程空间)申请一个buffer,用read函数把数据从磁盘读到cache,再从cache读取到用户空间的buffer,再用write函数把数据从用户空间的buffer写入到内核的buffer,最后到tcp socket。开启这个参数后可以让数据不用经过用户buffer。

    配置语法:sendfile on | off;
    默认配置:sendfile off;
    配置路径:http、server、location、if in location下

    2. tcp_nopush

    改配置可以让数据包达到一定大小后才一次行发送,这样使得每次的请求的使用率达到最高。比如 我们有10个包裹需要快递,可以1个1个分10次来寄,这样需要10次,但是我们可以一次性将这10个快递寄出,这样只需要1次,节省了快递时填单和走路的时间,更高效。
    这个配置的前提是开启 sendfile

    配置语法:tcp_nopush on | off;
    默认配置:tcp_nopush off;
    配置路径:http、server、location

    3. tcp_nodelay

    改配置和 tcp_nopush 是 "互斥"的,改配置表示立刻将缓冲区数据发出,常用于实时性较高的地方,一般用于keepalive长连接下,提高网络包的实时传输性

    配置语法:tcp_nodelay on | off;
    默认配置:tcp_nodelay on;
    配置路径:http、server、location

    4. 压缩,关于压缩可以参考该博客

    可以通过 gzip 配置来 配置文件压缩要求

    开启压缩
    配置语法:gzip on | off;
    默认配置:gzip off;
    配置路径:http、server、location、if in location

    设置压缩等级,等级越高,压缩度越高,对应的占用性能越高
    配置语法:gzip_comp_level level;
    默认配置:gzip_comp_level 1;
    配置路径:http、server、location

    设置gzip http协议的版本,用于识别http协议的版本,早期的浏览器不支持gzip压缩,用户会看到乱码,所以为了支持前期版本加了此选项。默认在http/1.0的协议下不开启gzip压缩。
    配置语法:gzip_http_version 1.0 | 1.1 ;
    默认配置:gzip_http_version 1.1;
    配置路径:http、server、location

    设置gzip_types,设置需要压缩的MIME类型,如果不在设置类型范围内的请求不进行压缩,这里的配置可以参考一下博客
    配置语法:gzip_types  mime-type....;
    写全就是:text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
    默认配置:gzip_types text/html;
    配置路径:http、server、location

    语法演示完毕,现在开始演示实际测试

    准备工作,需要准备一张图片,一个文本

    1. 在网上找一张图片,复制图片路径,使用 wget 下载,下载后保存到 /opt/app/code/images/下,如下图

    2.  在 /opt/app/code/docs/下创建一个 文本,随便vim 写一点东西即可

    3. 配置default.conf  先配置开启 文件读取,暂时不配置压缩,看看效果



    4. 现在配置压缩,再来看看效果

    从上图可以看出,图片压缩后的效果已成功,下面测试文本压缩效果


    5. 先配置default.conf,暂不配置压缩文本配置,查看效果




    6. 下面来配置压缩参数

    由上图可知,已实现了压缩效果
  • 相关阅读:
    【design pattern】代理模式
    Java IO(十七)FIleReader 和 FileWriter
    Java IO(十六)InputStreamReader 和 InputStreamWriter
    Java IO(十五)FilterReader 和 FilterWriter、FilterReader 子类 PushBackReader
    Java IO(十四) CharArrayReader 和 CharArrayWriter
    Java IO(十三)PipedReader 和 PipedWriter
    Java IO(十二) 字符流 Writer 和 Reader
    Java IO(十一) DataInputStream 和 DataOutputStream
    Java IO(十) BufferedInputStream 和 BufferedOutputStream
    Java IO(九)FilterInputStream 和 FilterOutputStream
  • 原文地址:https://www.cnblogs.com/duguxiaobiao/p/9128804.html
Copyright © 2011-2022 走看看