千家信息网

nginx缓存优先级

发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,接触nginx的兄弟或多或少都有遇到缓存问题,要么是nginx为什么不缓存,要么就是nginx缓存很快就失效等等问题,在网上找了一遍nginx缓存优先级的文章,大家可以参考下。架构图client端 <
千家信息网最后更新 2024年11月20日nginx缓存优先级

接触nginx的兄弟或多或少都有遇到缓存问题,要么是nginx为什么不缓存,要么就是nginx缓存很快就失效等等问题,在网上找了一遍nginx缓存优先级的文章,大家可以参考下。

架构图
client端 <------------------> nginx cache <------------------>源服务器

经过大量测试发现:nginx的过期顺序是有一个优先级的。下面首先说明各个影响缓存过期的因素:

(1)inactive:在proxy_cache_path配置项中进行配置,说明某个缓存在inactive指定的时间内如果不访问,将会从缓存中删除。
(2)源服务器php页面中生成的响应头中的Expires,生成语句为:
header("Expires: Fri, 07 Sep 2013 08:05:18 GMT");
(3)源服务器php页面生成的max-age,生成语句为:
header("Cache-Control: max-age=60");
(4)nginx的配置项 proxy_cache_valid:配置nginx cache中的缓存文件的缓存时间,如果配置项为:proxy_cache_valid 200 304 2m;说明对于状态为200和304的缓存文件的缓存时间是2分钟,两分钟之后再访问该缓存文件时,文件会过期,从而去源服务器重新取数据。

其次对需要注意的一点:源服务器的expires和nginx cache的expires配置项的冲突进行说明,场景如下

(1)源服务器端有php文件ta1.php内容如下:

1 2 3 4 5 6
0