nginx cache不能缓存的问题

今天在使用nginx自带的页面缓存的时候,发现两个url,nginxcache配置没有问题,但不能缓存,用firebug抓包查看头信息Nginx-Cache一直为MISS状态。(其他的url配置相同均没有发现问题)

查找了一天,从nginx缓存的配置,rewrite,actionName等等全都修改了一遍,最后定位到是action方法中的问题。

经过分段查看代码,发现如果action中对response进行了操作,如:header,cookie,nginx就不会利用cache缓存该页面,这应该是nginx的机制问题,这也不难理解,如果在action里操作了cookie,如果页面被缓存,action中的cookie就得不到执行,nginx应该是为了避免出现这种情况,才有了此机制。

所以我们在使用nginxcache的时候应该尽量避免操作response,否则页面是无法进行缓存的。

相关推荐