Nginx作为静态资源web服务之文件读取 文件读取会使用到以下几个配置 1. sendfile 使用nginx作为静态资源服务时,通过配置sendfile可以有效提高文件读取效率,设置为on表示启动高效传输文件的模式.sendfile可以让Nginx在传输文件时直接在磁盘和tcp socket之间传输数据.如果这个参数不开启,会先在用户空间(Nginx进程空间)申请一个buffer,用read函数把数据从磁盘读到cache,再从cache读取到用户空间的buffer,再用write函数把数据从…
本篇主要记录学习Nginx的静态资源WEB服务的几种常见的功能记录学习 Nginx开发常用的命令 nginx -tc /etc/nginx/nginx.conf vim /etc/nginx/conf.d/default.conf systemctl restart nginx.service 静态资源类型(非服务器动态运行生成的文件) 浏览器端渲染: HTML,CSS,JS 图片: JPEG,GIF,PNG 视频: FLV,MPEG 文件: TXT,等任意下载文件 静态资源服务场景-CDN 配…
Nginx作为静态资源web服务 静态资源web服务-CDN场景 Nginx资源存储中心会把静态资源分发给“北京Nginx”,“湖南Nginx”,“山东Nginx”. 然后北京User发送静态资源请求,通过CDN,找到离自己最近的“北京Nginx”. 静态资源核心配置 文件读取 sendfile sendfile 是一种高效传输文件的模式. sendfile设置为on表示启动高效传输文件的模式.sendfile可以让Nginx在传输文件时直接在磁盘和tcp socket之间传输数据.如果这个参数…
Nginx作为静态资源web服务之防盗链 首先,为什么需要防盗链,因为有些资源存在竞争对手的关系,比如淘宝的商品图片,不会轻易的让工具来爬虫爬走收集.但是如果使用防盗链,需要知道上一个访问的资源,然后放入名单中进行判断.那么如何获取上一个访问的资源呢,可以通过http_referers模块来实现. 1.查看 nginx.conf可以查看日志的配置中有下面这一段 所以可以通过看日志来看看 $http_referer 保存的信息是什么了. 2. 配置一个html,html信息如下 <html> &…
Nginx作为静态资源web服务之跨域访问 首先了解一下什么是跨域 跨域,指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器施加的安全限制. 所谓同源是指,域名,协议,端口均相同,不明白没关系,举个栗子: http://www.123.com/index.html 调用 http://www.123.com/server.php (非跨域) http://www.123.com/index.html 调用 http://www.456.com/server.php (主域…
Nginx作为静态资源web服务之缓存原理 大致理一下http浏览器缓存原理: 浏览器第一次请求服务器,此时浏览器肯定没有缓存,则直接调用服务器端,服务器在返回的信息的信息头中添加 ETag和Last-Modified参数信息,返回给客户端浏览器缓存. 然后浏览器以后的请求,先判断是否有缓存,那么怎么判断有缓存呢,有三步: (1)是否过期   (2)对ETag信息对比 ,ETag:  就是一个生成的字符串 (3)对Last-Modified信息对比:Last-Modified:服务端最后一次修改…
一.CDN 1.定义: 内容分发的逻辑网络. 2.作用: CDN能做到传输延时的最小化. CDN请求示意图如下: 二.静态资源需要配置的一些语法模块. 1.配置语法 - 文件读取 Syntax : sendfile on | off; Default : sendfile off; Context : http,server,location,if in location 当然现在随着Nginx和Linux的版本不断更新,已经出现了异步文件读取的模块:--with-file-aio模块. 2.t…
server { listen   80; server_name    localhost; sendfile    on; access_log    /var/log/nginx/host.access.log  main; #以jpg.gif.png结尾的下载路径 location ~.*\.(jpg|gif|png)$ {                #gzip on;                #gzip_http_version 1.1;                #gz…
一.控制浏览器缓存 1. 浏览器缓存简介 浏览器缓存遵循HTTP协议定义的缓存机制(如:Expires;Cache-control等). 当浏览器无缓存时,请求响应流程 当浏览器有缓存时,请求响应流程 浏览器缓存校验过期机制 校验是否过期 Cache-Control(max-age).Expires 协议中Etag头信息校验 Etag Last-Modified头信息校验 Last-Modified 浏览器请求流程 2. Nginx控制浏览器缓存配置 Nginx通过添加Cache-Control…
一.跨域访问 1.什么是跨域? 参看我的另一篇博客(https://www.cnblogs.com/chrdai/p/11280895.html) 2.为什么浏览器禁止跨域访问? 不安全,容易出现CSRF攻击. a.什么是CSRF攻击呢? CSRF(Cross-site request forgery)攻击就是跨站式攻击.原理如下: 当用户去访问正规网站(网站A)时,不小心点到了恶意网站B,网站B通过http Response向该用户发送一些带有恶意的请求,让用户在去请求网站A,这样就形成了跨站…