Chinaunix

标题: Nginx缓存状态设置问题 [打印本页]

作者: zhgypg_cu    时间: 2010-07-26 17:23
标题: Nginx缓存状态设置问题
测试使用Nginx的proxy_cache,看到网上有不少文章介绍Nginx可以对HTTP STATUS 进行缓存时间设置。

因为业务需求,对这个做了些测试。结果发现设置的没有达到预期效果。不知道是我的设置问题还是测试步骤有误。

请各位大侠帮忙分析一下。

Nginx配置:
proxy_temp_path         /data/nginx_store/temp_dir 1 2;
proxy_cache_path        /data/nginx_store/cache_dir  levels=1:2   keys_zone=cache_one:2048m inactive=360d max_size=10g;
upstream img_source
{
      server  192.168.1.122;
}

server
{
       listen           80;
       server_name      *.test.com;

       location ~ \.(jpg|jpeg|gif|bmp|png|css|js|flv|xml)$
      {
             proxy_next_upstream http_502 http_504 error timeout invalid_header;
             proxy_cache cache_one;
             proxy_cache_valid  200 304 12h;
             proxy_cache_valid  302 1m;
             proxy_cache_key $host$uri$is_args$args;
             proxy_set_header Host  $host;
             proxy_set_header X-Forwarded-For  $remote_addr;
             proxy_pass http://img_source;
      }
}


测试步骤:
1. 请求一张存在的图片,过期值12分钟。请求状态200,Nginx设置了200缓存2分钟。缓存成功。
2. 将图片从源站删除,浏览器清除cache。
3. 过2分钟后再次请求该图片,还是看到200状态。状态缓存2m无效。

同样的方法测试302的效果也是这样的。
作者: zhgypg_cu    时间: 2010-07-29 14:40
顶起来
作者: zgbchi    时间: 2010-08-02 15:46
你的描述不太清楚 你的源站服务器是不是配置了cache-control或expires。如果是的话,你的测试结果是正确的。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2