一.静态资源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. nginx配置之负载均衡

    nginx负载均衡 nginx代理机分发到多台同一项目的服务机 负载均衡器代理机配置:nginx.conf的http{}: #代理池,运行在不同服务机的程序 upstream loadtest{ se ...

  2. Django之views.py视图函数学习

    视图函数: 视图函数时存在django项目中的应用程的一个名为views.py的文件模块: 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 一 ...

  3. 都说变量有七八种,到底谁是 Java 的亲儿子

    网上罗列了很多关于变量的理解,良莠不齐,不知道哪些是对的,哪些是错的,所以笔者就这些博客和自己的理解写出这篇文章,如果有不对的地方,希望读者能够指正,感谢. 变量是我们经常用到的一种,我在刚学 Jav ...

  4. BZOJ1017 树形DP

    1017: [JSOI2008]魔兽地图DotR Time Limit: 30 Sec  Memory Limit: 162 MBSubmit: 2308  Solved: 919[Submit][S ...

  5. thinkphp路由简介和设置使用

    use think\Route; //静态路由 Route::rule('/', 'index/index/index'); Route::rule('test', 'index/index/test ...

  6. UIAutomator2的API文档(一)

    检查并维持设备端守护进程处于运行状态,应该是重启了atx守护进程:d.healthcheck() 1.隐式等待 import uiautomator2 as u2serialno = '7f3dec6 ...

  7. 循序渐进VUE+Element 前端应用开发(3)--- 动态菜单和路由的关联处理

    在我开发的很多系统里面,包括Winform混合框架.Bootstrap开发框架等系列产品中,我都倾向于动态配置菜单,并管理对应角色的菜单权限和页面权限,实现系统对用户权限的控制,菜单一般包括有名称.图 ...

  8. [Android-NDK编译] ndk 编译 c++ 兼容性问题汇总整理

    1.__int64找不到符号 采用int64_t来代替: #if defined(__ANDROID__) typedef int64_t __int64; #endif 2.<sys/io.h ...

  9. 基于RBAC的权限控制浅析(结合Spring Security)

    嗯,昨天面试让讲我的项目,让我讲讲项目里权限控制那一块的,讲的很烂.所以整理一下. 按照面试官的提问流程来讲: 一.RBAC是个啥东西了? RBAC(Role-Based Access Control ...

  10. 「MoreThanJava」计算机系统概述

    「MoreThanJava」 宣扬的是 「学习,不止 CODE」,本系列 Java 基础教程是自己在结合各方面的知识之后,对 Java 基础的一个总回顾,旨在 「帮助新朋友快速高质量的学习」. 当然 ...