百度空间 | 百度首页 
 
查看文章
 
nginx配置文件的bug?
2009-04-22 16:24
有一些动态图片虽然是用php脚本生成的,但是希望可以在客户端缓存,因此在nginx的配置文件里边增加了一个if语句来控制缓存有关的header。

# 动态图片部分需要使用缓存
location ~ .*\.php$ {
    if ($request_uri !~ ^/dynamicimg/) {
        add_header              Cache-Control "no-cache, no-store, max-age=0, must-revalidate";
        add_header              Pragma no-cache;
    }
    add_header              Via "1.0 server-ubuntu";
    ...
}

原本期望的效果是当请求页面为/dynamicimg/开头的文件时,不输出缓存控制有关的response header,但是对于所有的php请求,都会输出Via这个header,但是最终的结果却和这不同:当请求/dynamicimg/开头的文件时,会输出Via header,而请求其他php页面时,不会输出Via header。

把add_header              Via "1.0 server-ubuntu";放到if语句的前面,效果也还是一样。后来不得不在if范围内增加一条重复的add_header语句,这才达到了最初的目的。

不知道这是不是nginx配置里边的一个bug。

类别:技术追峰 | 添加到搜藏 | 浏览() | 评论 (2)
 
最近读者:
 
网友评论:
1
2009-06-11 02:35 | 回复
我们也碰到和你一样的问题,解决办法也是一样的。
 
2
2009-06-11 02:37 | 回复
简单粗暴,有效,哈哈!
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu