学习nginx从入门到实践(五) 场景实践之静态资源web服务

时间:2024-04-03 14:06:38

一.静态资源web服务

1.1 静态资源

静态资源定义:非服务器动态生成的文件。

学习nginx从入门到实践(五)  场景实践之静态资源web服务

1.2 静态资源服务场景-CDN

学习nginx从入门到实践(五)  场景实践之静态资源web服务

1.3 文件读取配置

1.3.1 sendfile

  配置语法:

  syntax: sendfile on | off;
  default:sendfile off
  context:http,server,location,if in location

  注 –with-file-aio异步文件读取 

1.3.2 tcp_nopush

  作用:sendfile 开启的情况下,提高网络包的传输效率(等待,一次传输)

  配置语法:

  syntax: tcp_nopush on | off
  default: tcp_nopush off
  context: http, server, location
  相反的

1.3.3 tcp_nodelay   

  作用:在keepalive连接下,提高网络包的传输实时性

  配置语法:

  syntax: tcp_nodelay on | off
  default: tcp_nodelay on
  context: http, server, location

1.3.4  压缩 

  作用:在keepalive连接下,提高网络包的传输实时性

  配置语法:   

  syntax:gzip on | off
  default:gzip off
  context:http, server, if in location
  
  syntax: gzip_comp_level level;
  default: gzip_comp_level 1;
  context: http, server, location
  扩展nginx压缩模块
  • http_gzip_static_module:预读gzip功能
  • http_gunzip_module: 应用支持gunzip的压缩方式

  配置截图

  学习nginx从入门到实践(五)  场景实践之静态资源web服务学习nginx从入门到实践(五)  场景实践之静态资源web服务

1.4 浏览器缓存

 作用:http协议定义的缓存机制(如:expires,cache-control 等)

 检测过期机制

作用 请求头
检验是否过期 expires, cache-control (max-age)
协议中Etag头信息校验 etag
last-modified 头信息校验

last-modified

    浏览器请求服务器过程(缓存版本)

  学习nginx从入门到实践(五)  场景实践之静态资源web服务

  相关配置

   expires  添加cache-control、expires头

  配置语法:

  syntax: expires [modified] time;
  expires epoch | max | off;
  default: expires off;
  context: http, server, location
  配置例子:
  location ~  .*\.(htm|html)$  {
    #expires 24h;
    root /opt/app/code;
  }

1.5 跨域访问

  为什么浏览器禁止跨域访问: 不安全,容易出现CSRF攻击

  学习nginx从入门到实践(五)  场景实践之静态资源web服务学习nginx从入门到实践(五)  场景实践之静态资源web服务

  nginx配置:

  配置语法:  

  syntax:  add_header name value [always]
  default:  -
  context: http, server, location, if in location

  添加请求头:Access-Control-Allow-Origin

  配置截图:

  学习nginx从入门到实践(五)  场景实践之静态资源web服务

1.6 跨域访问

  目的 - 防止资源被盗用

  防盗链设置思路:   

    首要方式:区别哪些请求是非正常的用户请求
  配置语法:
  syntax:  valid_referers none | blocked | server_names | string...;
  default:  -
  context: server, location
  配置截图:
  学习nginx从入门到实践(五)  场景实践之静态资源web服务
  none: 表示如果没带refer
  blocked: 代表不是标准的http写过过来的
  一个命令: curl -e "http://www.baidu.com" -I http://116.62.103.228/wei.png
  -e: 表示refer
  -i: 表示只显示请求头