一.静态资源web服务

1.1 静态资源

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

1.2 静态资源服务场景-CDN

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的压缩方式

  配置截图

  

1.4 浏览器缓存

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

 检测过期机制

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

last-modified

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

  

  相关配置

   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配置:

  配置语法:  

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

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

  配置截图:

  
 

1.6 跨域访问

  目的 - 防止资源被盗用

  防盗链设置思路:   

    首要方式:区别哪些请求是非正常的用户请求
 
  配置语法:
  syntax:  valid_referers none | blocked | server_names | string...;
  default:  -
  context: server, location
  
  配置截图:
  
  none: 表示如果没带refer
  blocked: 代表不是标准的http写过过来的
  
  一个命令: curl -e "http://www.baidu.com" -I http://116.62.103.228/wei.png
  -e: 表示refer
  -i: 表示只显示请求头
  
 
  

学习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服务之文件读取 文件读取会使用到以下几个配置 1. sendfile 使用nginx作为静态资源服务时,通过配置sendfile可以有效提高文件读取效率,设置为on表示启动 ...

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

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

  7. nginx实践(一)之静态资源web服务

    静态资源服务场景CDN 配置语法-文件读取(nginx优势之一sendfile) 配置语法-tcp_nopush 简单的说就是把多个包合并,一次传输给客户端 配置语法-tap_nodelay 配置语法 ...

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

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

  9. nginx静态资源web服务

    静态资源:非服务器动态运行生成的文件 浏览器端渲染:html ,css,js 图片:jpeg,gif,png 视频:flv ,mpeg 文件:txt,等任意下载文件 静态资源服务场景:CDN 文件读取 ...

随机推荐

  1. linux常用命令---终端与目录操作

    终端相关操作 目录相关操作

  2. Django认证系统之自带auth_user表操作

    Django自带auth_user表操作: views.py from django.contrib  import  auth#引入auth模块 from django.contrib.auth.m ...

  3. IDEA三种注释详解

    三种注释方式 行注释.块注释.方法或类说明注释. 一.快捷键:Ctrl + / 使用Ctrl+ /, 添加行注释,再次使用,去掉行注释 二.演示代码 if (hallSites != null &am ...

  4. 五、数据类型(1):整数&&带小数点的数

    1.整数 int printf("%d",...); scanf("%d",&...); 2.带小数点的数 double printf("%f ...

  5. Java高级特性之集合

    Java集合框架 一.Java集合框架概述 1.数组与集合的区别: 1)数组长度不可变化而且无法保存具有映射关系的数据:集合类用于保存数量不确定的数据,以及保存具有映射关系的数据. 2)数组元素既可以 ...

  6. [Android应用开发] 05.广播和服务

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  7. require.js与IDEA的配合

    本文主要讲述在html中使用requirejs时,如何让IDEA更加智能识别javascript的方法. 测试时的目录结构,一种典型的 thinkphp 的结构,同时,在 a.thml 中通过 req ...

  8. SpringBoot返回html页面

    一般Controller返回数据或页面,今天谈一下返回页面的场景. 一.不使用template 1. controller中定义对应的访问路由及返回的页面(使用Controller,不要使用RestC ...

  9. MyBatis(三)动态SQL与缓存

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.动态SQL语句 准备工作: public class User { private int id; ...

  10. Java实现蓝桥杯基础练习特殊回文数

    基础练习 特殊回文数 时间限制:1.0s 内存限制:512.0MB 提交此题 锦囊1 锦囊2 问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的. 输入一个正整数n, 编程求所有这 ...