nginx缓存优先级

  

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

  

  <>强架构图
  客户端,& lt; - - - - - - - - - - - - - - - - - -在,,nginx缓存& lt; - - - - - - - - - - - - - - - - - -在源服务器   

  

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

  

  (1)活动:在proxy_cache_path配置项中进行配置,说明某个缓存在活动指定的时间内如果不访问,将会从缓存中删除。
  (2)源服务器php页面中生成的响应头中的到期,生成语句为:
  标题(“到期:星期五,07年9月2013 08:05:18 GMT”);
  (3)源服务器php页面生成的信息,生成语句为:
  标题(“cache - control:信息=60”);
  (4)nginx的配置项proxy_cache_valid:配置缓存中nginx的缓存文件的缓存时间,如果配置项为:proxy_cache_valid 200 304 2 m;说明对于状态为200年和304年的缓存文件的缓存时间是2分钟,两分钟之后再访问该缓存文件时,文件会过期,从而去源服务器重新取数据。   

  

  其次对需要注意的一点:源服务器的失效和nginx缓存的到期配置项的冲突进行说明,场景如下   

  

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

                                1         2         3.         4         5         6                                                                                             

  (2)在nginx缓存服务器端的配置信息如下:   

                                1         2         3.         4         5         6         7         8         9         10         11         12         13         14         15         16         17         18         19         20.         21         22         23         24         25         26                     ……         path  dir ,,         ……         ,                           ,,超时         ,,超时         ,,         ,,         ,,,的关键         ,,         ,,         ,,         ,,         ,,         ,,头         ,,头         ,,         ,,头         ,才能有效         ,,         ,,         ,,                  ............                           

  从上面两项可以看出nginx缓存服务器中到期的配置是30年代,该到期的值直接决定了在浏览器端看到的信息以及到期的值。而源服务器断的代码中设置的响应头中的信息为60,到期为星期五,07年9月2013 08:05:18 GMT。这是源服务器的设置于nginx-cache的设置冲突了,那么着两个属性应该怎么设置呢?   

  

  这客户端时的信息与到期的值按照nginx缓存中到期的配置项的设置,即:   

                                1         2                     ,                                    

  而nginx端缓存的缓存的信息与到期的值按照源服务器上的代码的设置。即:   

                                1         2                     ,                                    

  现在步入正题:   

  

  经过大量测试发现:对缓存的过期与清除起作用的因素的优先级从高到低一次为:

nginx缓存优先级