6.1客户端请求静态文件

image.png

6.2 静态资源类型

非服务器动态运行生成的文件
image.png

6.3 静态资源服务场景 -CDN

场景描述:比如一个北京的用户要访问一个新疆的图片,由于北京和新疆距离太远,如果直接访问就很消耗时间,于是新疆就把图片放到资源存储中心,通过CDN分发网络的技术,让北京代理一下,这样北京的用户定位到了北京,通过北京代理来访问新疆的资源
image.png

6.4 配置语法-文件读取

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

引读: -with-file-aio 异步文件读取

Syntax: tcp_nopush on | off;
Default: tcp_nopush off;
Context: http,server,location
作用:sendfile开启的情况下,提高网络包的传输效率

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 loaction
作用:压缩传输
减少服务消耗,也减少带宽资源,减少传输文件的大小,从而实现传输的实时性
image.png

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

6.5扩展模块

http_gzip_static_module -预读gzip功能
http_gunzip_module -应用支持gunzip的压缩方式

  1. sendfile on;
  2. location ~ .*\.(jpg|gif|png)$ {//url路径以 jpg,gif,png结尾的,都访问images这个文件下资源
  3. gzip on;
  4. gzip_http_version 1.1;
  5. gzip_comp_level 2;
  6. gzip_types text/plain application/javascript application/x-javascript text/css application/xml
  7. text/javascript application/x-httpd-php image/jpeg image/gif image/png;
  8. root /opt/app/code/images;
  9. }
  10. location ~ .*\.(txt|xml)$ {//url路径以 txt,xml结尾的,都访问images这个文件下资源
  11. gzip on;
  12. gzip_http_version 1.1;
  13. gzip_comp_level 2;
  14. gzip_types text/plain application/javascript application/x-javascript text/css application/xml
  15. text/javascript application/x-httpd-php image/jpeg image/gif image/png;
  16. root /opt/app/code/doc;
  17. }
  18. location ~ ^/download {//以download开头的
  19. gzip_static on;
  20. tcp_nopush on;
  21. root /opt/app/code;
  22. }

6.6浏览器缓存机制

HTTP协议定义的缓存机制(如:Expires,Cache-Control等)

6.5.1浏览器无缓存

(第一次请求)浏览器请求——>无缓存——>请问WEB服务器-请求响应,协商——>呈现
浏览器请求——>有缓存——> 校验过期——>呈现

6.5.2校验过期机机制

校验是否过期 Expires、Cache-Control(max-age:周期) 校验本地缓存是否过期
协议中Etage头信息校验 Etage
Last-Modified头信息校验 Last-Modifed
image.png

6.7Nginx缓存配置

6.7.1配置语法 -expires
添加Cache-Control、Expires头
Syntax: expires [modified] time
expiresoch|max|of
Defulat: expires off;
Caontext:http,sever,location,if in location

  1. location ~ .*\.(htm|html)$ {
  2. expires 24;
  3. root /usr/local/nginx/app/code;
  4. }

6.8跨域访问(请求一个浏览器页面,通过跨域访问到了两个服务器的资源)

image.png

6.8.1为什么浏览器进制跨域请求

不安全,容易出现CSRF攻击!

6.8.2配置语法

Syntax: add_header name value [always]
Default:-
Context:http,server,location,if in location

6.9防盗链

配置语法:
Syntax: valid_referers none|blocked|server_names|string ….,
Default: -
Context:server,location