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. 下面来配置压缩参数

由上图可知,已实现了压缩效果

Nginx作为静态资源web服务之文件读取的更多相关文章

  1. Nginx之静态资源WEB服务

    本篇主要记录学习Nginx的静态资源WEB服务的几种常见的功能记录学习 Nginx开发常用的命令 nginx -tc /etc/nginx/nginx.conf vim /etc/nginx/conf ...

  2. nginx 作为静态资源web服务

    Nginx作为静态资源web服务 静态资源web服务-CDN场景 Nginx资源存储中心会把静态资源分发给“北京Nginx”,“湖南Nginx”,“山东Nginx”. 然后北京User发送静态资源请求 ...

  3. Nginx作为静态资源web服务之防盗链

    Nginx作为静态资源web服务之防盗链 首先,为什么需要防盗链,因为有些资源存在竞争对手的关系,比如淘宝的商品图片,不会轻易的让工具来爬虫爬走收集.但是如果使用防盗链,需要知道上一个访问的资源,然后 ...

  4. Nginx作为静态资源web服务之跨域访问

    Nginx作为静态资源web服务之跨域访问 首先了解一下什么是跨域 跨域,指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器施加的安全限制. 所谓同源是指,域名,协议,端口均相 ...

  5. Nginx作为静态资源web服务之缓存原理

    Nginx作为静态资源web服务之缓存原理 大致理一下http浏览器缓存原理: 浏览器第一次请求服务器,此时浏览器肯定没有缓存,则直接调用服务器端,服务器在返回的信息的信息头中添加 ETag和Last ...

  6. Nginx作为静态资源web服务

    一.CDN 1.定义: 内容分发的逻辑网络. 2.作用: CDN能做到传输延时的最小化. CDN请求示意图如下: 二.静态资源需要配置的一些语法模块. 1.配置语法 - 文件读取 Syntax : s ...

  7. 记录Nginx作为静态资源web服务场景配置

    server { listen   80; server_name    localhost; sendfile    on; access_log    /var/log/nginx/host.ac ...

  8. Nginx实践篇(2)- Nginx作为静态资源web服务 - 控制浏览器缓存、防盗链

    一.控制浏览器缓存 1. 浏览器缓存简介 浏览器缓存遵循HTTP协议定义的缓存机制(如:Expires;Cache-control等). 当浏览器无缓存时,请求响应流程 当浏览器有缓存时,请求响应流程 ...

  9. Nginx作为静态资源web服务-跨站访问

    一.跨域访问 1.什么是跨域? 参看我的另一篇博客(https://www.cnblogs.com/chrdai/p/11280895.html) 2.为什么浏览器禁止跨域访问? 不安全,容易出现CS ...

随机推荐

  1. bind绑定服务的生命周期

    bindService(service, conn, flags); * service :意图 * conn :activity和服务的连接通道 * flags : BIND_AUTO_CREATE ...

  2. 小D课堂 - 新版本微服务springcloud+Docker教程_5-07 断路器dashboard监控仪表

    笔记 7.断路器Dashboard监控仪表盘实战     简介:讲解断路器Dashboard基础使用和查看     1.加入依赖          <dependency>         ...

  3. Linux 查看CPU和内存的使用情况

    Linux 查看CPU和内存的使用情况 如何查看Linux机器的CPU和内存的使用情况. 可以通过如下方式: 1.查看CPU和内存的实时使用情况 使用如下命令: top 命令执行后,效果如下(资源的使 ...

  4. 错误 MSB6006 CL.exe 已退出,代码为2

    环境 WIN10 + VS2019 社区版 按照其他网友的方法说 解决方法: 1 一个类内部的定义返回类型为double的方法种没有写return语句. 2 变量没有初始化也会导致这种情况. 但是设置 ...

  5. Linux系统管理_主题02 :管好文件(1)_2.2 列出文件和文件属性_chmod_ls

     用户(user)是能够获取系统资源的权限的集合.Linux 中的用户可 以分为三类: 1. 根用户(root):具有系统全部权限的用户: 2. 普通用户:其使用系统的权限受到一定限制: 3. 系统 ...

  6. 树莓派-Ubuntu Mate开启ssh服务

    1. 运行 apt search openssh-server 查看是否安装ssh服务. 2. 如已安装,运行 sudo dpkg-reconfigure openssh-server 重新配置shh ...

  7. 【笔记】Docker部署Odoo

    一,制作一个自己的odoo镜像odoo:yto 1,下载一个odoo10的镜像 docker pull odoo:10.0 2,按照自己的意愿修改里面的内容 docker run -it -u roo ...

  8. tf.metrics.sparse_average_precision_at_k 和 tf.metrics.precision_at_k的自己理解

    tensorflow最大的问题就是大家都讲算法,不讲解用法,API文档又全是英文的,看起来好吃力,理解又不到位.当然给数学博士看的话,就没问题的. 最近看了一系列非常不错的文章,做一下记录: http ...

  9. Pandas导入导出&pickle文件模块

    Pandas可以读取与存储的文件格式有很多 像csv,excel,json,html等,详细请看官方文档https://pandas.pydata.org/pandas-docs/stable/use ...

  10. Go语言入门篇-JSON&http调用

    一.Decoder /(一)Decoder func DecoderExample(){ const jsonStream = ` { "Name" : "Ed" ...