一、Nginx的缓存
二、Nginx控制浏览器缓存
1.在/home/imooc目录下新建一个cache.html
2.在imooc.conf里之前已经配置好了:
3.在浏览器里第一次访问
4.刷新页面
刷新页面后,发现nginx返回的状态是304,这个就是缓存的状态。200状态就是重新拉取整个文件。当nginx判断上次修改的文件的时间没有发生更改(200状态下的文件修改时间和缓存里的文件修改时间一致),就会返回缓存里的内容。
从结果来看,缓存里静态文件的大小要小于重新拉取原文件的大小,时间也要少。
对于我们浏览器来讲,可以禁用缓存,那么就会重新拉取新的文件。
5.expire:设置缓存过期时间
(1)expires 10s;
这时,我们在浏览器浏览页面,会发现nginx返回的Cache-Control:max-age=10,这是缓存过期的绝对时间,Expires显示的内容是过期后的时间。
(2)expires @22h30m;
设置过期的时间点。如下图,Expires的时间减去Date的时间就等于此时离过期时间点22h30m还剩余的时间,也就是Cache-Control中max-age的值。此时的时间是17:03:28,距离22h30m还有差不多19677s。
(3)expires -1h;
表示距离过期时间已经过了1小时。
(4)expires epoch;
表示不设置cache。
(5)expires off;
nginx里默认类型是expires off,含义是关闭浏览器端expires,关闭并不代表浏览器没有缓存机制,浏览器还是有默认的缓存机制的。只是设置expires off,在浏览器端就看不到Cache-Control、Expires这些设置。
(6)expires off;
表示设置缓存最大过期时间,也就相当于是永不过期。
总结:expires用来控制静态缓存,比如html、css、图片、视频等等。(浏览器端)
三、Nginx的反向代理缓存
配置内容:
配置文件配置好之后,重新加载配置,在浏览器访问nginx,然后查看/usr/local/nginx/upstream_cache目录下是否有缓存。我们刚才设置的过期时间是30s,所以30s之后就看不到缓存了。