Nginx作为常用的中间件,它主要运用在静态资源web服务器,代理服务,负载均衡调度器SLB及动态缓存上。
Nginx作为http静态资源的server,它可以接收客户端类似于jpeg、htm、flv这种静态资源的请求,然后直接通过静态资源的存储得到这些文件返回给客户端。这种方式是一种典型高效的传输方式,这种场景,常常会会利用在对静态资源的处理请求以及动静分离这个场景下的应用。
静态资源:
CDN(内容分发网络):
我们在请求静态资源的时候常常会利用到cdn这项技术。Nginx也就是在cdn这项技术里面扮演着一个个非常重要的角色。要求传输延时的最小化。
作为静态资源web服务配置语法:
Nginx在服务端对数据包进行压缩,传输到浏览器端进行解压,压缩以及解压减少了中间网络的消耗。但是压缩会消耗一定服务端的性能。所以压缩比需要根据自身服务器状态进行调整。
Nginx浏览器缓存:
http协议定义的缓存协议,它依靠一些特殊的头信息来跟服务端进行特殊的验证。
浏览器在访问一个新的url的时候,本地是没有缓存时请求方式。
有缓存时请求方式:
效验机制:
Last-Modify记录着后面跟着一个时间戳,这个时间用来跟服务器端的文件进行一个效验。如果本地文件在这个时间周期有新的更新了,那么服务端的时间就对应着这个请求的文件时间更新,就会出现本地文件跟服务端文件的时间不一致,这样服务端会把最新的文件返回给客户端。Last-Modify只精确到秒,在1秒之内的更新是不起作用。而Etag的出现就能很好地解决这个问题,它是以一串特殊的字符串作为标识,服务端也会保留一串特殊的字符串。只要对比着一串特殊字符串即可。
Nginx缓存过期配置:
配置示例:
Nginx跨站访问:
跨站配置:
配置示例:
Nginx防盗链:
防盗链:防止网站资源被盗用。
防盗链思路:
基于http_refer:
配置示例: