6.1客户端请求静态文件
6.2 静态资源类型
6.3 静态资源服务场景 -CDN
场景描述:比如一个北京的用户要访问一个新疆的图片,由于北京和新疆距离太远,如果直接访问就很消耗时间,于是新疆就把图片放到资源存储中心,通过CDN分发网络的技术,让北京代理一下,这样北京的用户定位到了北京,通过北京代理来访问新疆的资源
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
作用:压缩传输
减少服务消耗,也减少带宽资源,减少传输文件的大小,从而实现传输的实时性
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的压缩方式
sendfile on;
location ~ .*\.(jpg|gif|png)$ {//url路径以 jpg,gif,png结尾的,都访问images这个文件下资源
gzip on;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml
text/javascript application/x-httpd-php image/jpeg image/gif image/png;
root /opt/app/code/images;
}
location ~ .*\.(txt|xml)$ {//url路径以 txt,xml结尾的,都访问images这个文件下资源
gzip on;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml
text/javascript application/x-httpd-php image/jpeg image/gif image/png;
root /opt/app/code/doc;
}
location ~ ^/download {//以download开头的
gzip_static on;
tcp_nopush on;
root /opt/app/code;
}
6.6浏览器缓存机制
HTTP协议定义的缓存机制(如:Expires,Cache-Control等)
6.5.1浏览器无缓存
(第一次请求)浏览器请求——>无缓存——>请问WEB服务器-请求响应,协商——>呈现
浏览器请求——>有缓存——> 校验过期——>呈现
6.5.2校验过期机机制
校验是否过期 Expires、Cache-Control(max-age:周期) 校验本地缓存是否过期
协议中Etage头信息校验 Etage
Last-Modified头信息校验 Last-Modifed
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
location ~ .*\.(htm|html)$ {
expires 24;
root /usr/local/nginx/app/code;
}
6.8跨域访问(请求一个浏览器页面,通过跨域访问到了两个服务器的资源)
6.8.1为什么浏览器进制跨域请求
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