【问题标题】:HTTP cache headers CDN serving content that never changesHTTP 缓存标头 CDN 提供永不更改的内容
【发布时间】:2012-10-31 20:24:09
【问题描述】:

我正在提供永远不会随广告服务器更改的静态图片,并且我看到 http 标头包括以下内容:

缓存控制:max-age=315360000

Pragma: public

缓存控制:公共、必须重新验证、代理重新验证

如何让浏览器缓存数据? 我的源服务器是 nginx。

谢谢!

【问题讨论】:

    标签: caching nginx cdn


    【解决方案1】:

    expires max; 添加到静态图像的位置,请参阅http://nginx.org/en/docs/http/ngx_http_headers_module.html#expires

    更新:

    要将其应用到特定目录 - 比如说一个子目录 images - 您需要添加以下内容:

    location /images/ {
      expires max;
    }
    

    【讨论】:

    • 你能告诉我这个输出很好吗:If-Modified-Since: Fri, 09 Nov 2012 23:54:59 GMT Cache-Control: max-age=0 HTTP/1.1 304 Not Modified服务器:nginx/0.7.65 日期:格林威治标准时间 2012 年 11 月 15 日星期四 10:49:09 连接:keep-alive 最后修改时间:格林威治标准时间 2012 年 11 月 9 日星期五 23:54:59 到期时间:2037 年 12 月 31 日星期四 23:55 :55 GMT Cache-Control: max-age=315360000, public, must-revalidate, proxy-revalidate Pragma: public X-Cache: MISS from ams-ch-4.cdn.peer1.net X-Cache-Lookup: HIT from ams-ch-4.cdn.peer1.net:81 通过:1.0 ams-ch-4.cdn.peer1.net:81 (squid) ------------------ ------------------------------------------
    • hm,发生了一些奇怪的事情:您有 2 个缓存控制标头,其中一个设置为 max-age=0(这基本上意味着不使用缓存版本)。第二个 Cache 控制标头和 Expires 看起来不错。可能与(来自标头)位于客户端和服务器之间的 squid 代理有关。尝试在没有 squid 的情况下访问内容,以缩小问题的根源。
    猜你喜欢
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 2019-01-20
    • 2011-05-20
    • 2016-03-25
    • 1970-01-01
    相关资源
    最近更新 更多