zoukankan      html  css  js  c++  java
  • (009)Nginx静态资源web服务

      常见Nginx中间架构:静态资源web服务;代理服务;负载均衡调度SLB;动态缓存。本文记录Nginx作为静态资源WEB服务的配置以及示例。

      1、静态资源

      Nginx作为WebServer可以接收客户端的静态资源的请求,然后通过静态资源的存储得到这些文件返回给客户端。常常用在对于静态资源的处理、请求、动静分离等场景。静态资源指非服务器动态运行生成的文件,包括HTML、CSS、JS、JPEG、GIF、PNG、FLV、MPEG、TXT等任意下载文件。

      2、静态资源服务场景-CDN

      请求静态资源常常用到CDN这项技术:北京的用户请求一个文件,假如文件放在了新疆,新疆离北京的距离比较远,直接请求的话延时很长。如果新疆有一个Nginx节点作为资源存储中心,分发给其他省的Nginx节点,北京的用户根据DNS就可以请求距离近的省份的Nginx的静态文件了。以下是简单的CDN架构图:

      

      3、静态资源Web服务配置语法

      Syntax:sendfile on | off;
      Default:sendfile off;
      Context:http,server,location,if in location
      作用:开启sendfile

      Syntax:tcp_nopush on | off;
      Default:tcp_nopush off;
      Context:http,server,location
      作用:sendfile开启的情况下,提高网络包的传输效率,nopush不是立马把包推送给客户端,多个包整合后一次性发送出去。

      Syntax:tcp_nodelay on | off;
      Default:tcp_nodelay on;
      Context:http,server,location
      作用:在keepalive连接下,提高网络包的传输实时性。不等待,实时发送,要求实时性比较高的场景。

      Syntax:gzip on | off;
      Default:gzip off;
      Context:http,server,location,if in location
      作用:压缩传输,服务端压缩,浏览器端解压。

      Syntax:gzip_comp_level level;
      Default:gzip_comp_level 1;
      Context:http,server,location
      作用:控制压缩比

      Syntax:gzip_http_version 1.0|1.1;
      Default:gzip_http_version 1.1;
      Context:http,server,location
      作用:指定gzip的http协议版本

      4、演示压缩与预读功能

      http_gzip_static_module:预读gzip功能。假如读文件的/aaa.txt文件,开启了该功能会优先读/aaa.txt.gz文件

      http_gunzip_module:应用支持gunzip的压缩方式,不支持gip的开启gunzip模块,基本用不到。

      1)准备文件:

      /opt/app/code/images/wei.png;

      /opt/app/code/doc/access.txt(内容多些,方便看效果);

      /opt/app/code/download/test.img;

      2)新建:/etc/nginx/conf.d/static_server.conf

    location ~ .*.(jpg|gif|png)$ {
        root  /opt/app/code/images;
    }
    
    location ~ .*.(txt|xml)$ {
        root  /opt/app/code/doc;
    }
    
    location ~ ^/download {
        tcp_nopush on;
        root /opt/app/code;
    }

      分别定义了3个访问路径:

      以 jpg、gif、png 结尾的文件访问 /opt/app/code/images;

      以 txt、xml 结尾的访问 /opt/app/code/doc;

      以 download 开头的访问 /opt/app/code;

      

      检查语法并重新加载,测试:http://192.168.7.151/wei.png,图片239KB;http://192.168.7.151/access.txt,文本175KB;

      

      

      cd到目录 /opt/app/code/download,执行压缩命令,现在该目录中只有 test.img.gz

    [root@localhost download]# gzip ./test.img

      测试:http://192.168.7.151/download/test.img,找不到文件

      

      现在重新修改 /etc/nginx/conf.d/static_server.conf 文件 

    location ~ .*.(jpg|gif|png)$ {
      gzip on;
      gzip_http_version 1.1;
      gzip_comp_level 2;
      gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
      root  /opt/app/code/images;
    }
    
    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 image/png;
      root  /opt/app/code/doc;
    }
    
    location ~ ^/download {
      gzip_static on;
      tcp_nopush on;
      root /opt/app/code;
    }

      

      检查语法并重新加载,测试:http://192.168.7.151/wei.png,图片233KB;http://192.168.7.151/access.txt,文本23.5KB;

      

      

      测试:http://192.168.7.151/download/test.img,能找到文件 

      

  • 相关阅读:
    实体类、边界类和控制类
    面向对象分析和面向对象设计的区别
    面向对象分析与设计的步骤
    用例图:从用户角度描述系统功能,并指各功能的操作者
    面向对象分析和设计(OOA/D)
    在UML系统开发中有三个主要的模型
    UML建模之活动图介绍(Activity Diagram)
    活动图本质上就是流程图
    流程图
    流程、业务与事务
  • 原文地址:https://www.cnblogs.com/javasl/p/12837779.html
Copyright © 2011-2022 走看看