【问题标题】:Does an apache restart reliably clear pagespeed cache?apache重启是否可靠地清除pagespeed缓存?
【发布时间】:2013-05-07 18:21:29
【问题描述】:

我目前正在开发一个网站,该网站的 javascript 更新相当频繁,并且刚刚开始使用 mod_pagespeed 以确保客户始终拥有最新的代码。

文档告诉我这样做会清除我的 pagespeed 缓存并强制客户端获取我的新 javascript/css:

sudo touch /var/cache/pagespeed/cache.flush

我通过更改一些 javascript 代码进行了测试,在浏览器上点击刷新以验证我仍然看到旧代码(我的缓存过期设置为一天),然后重新启动 apache,我确实可以看到我的新代码变化。

我可以相信重新启动总是足够的,并且不需要cache.flush,还是我也需要运行刷新命令?我读到需要重新启动 apache 才能清除内存缓存,而不是文件缓存和/或 cache.flush 如何与之匹配。

更新:

我提取了 pagespeed 代码,如果我理解正确,cache.flush 进程会更新时间戳。

RewriteOptions::UpdateCacheInvalidationTimestampMs 似乎正在发生这种情况: http://modpagespeed.googlecode.com/svn/trunk/src/net/instaweb/rewriter/rewrite_options.cc

如果我能弄清楚这是在更新哪个时间戳,似乎我可以检查它/重新启动 apache/再次检查它(查看时间戳是否更改)或从文件名/位置/谁拥有它以某种方式推断是否或者不会发生这种情况。

对此还有什么想法吗?有关如何确定正在更新哪个时间戳的建议?其他让我感觉更好的理由是每次更新时手动执行额外的刷新命令(当我已经因为其他原因重新启动 apache 时)或将其排除在外?

【问题讨论】:

    标签: apache apache2 pagespeed mod-pagespeed


    【解决方案1】:

    触摸cache.flush 文件:

    sudo touch /var/cache/mod_pagespeed/cache.flush
    

    参考:https://developers.google.com/speed/pagespeed/module/system#flush_cache

    【讨论】:

      【解决方案2】:

      不重新启动 Apache 不会清除 pagespeed 缓存。您必须使用 cache.flush 手动完成。

      【讨论】:

      • 谢谢——你能再解释一下吗?当我重新启动并获得更新的代码时,我是不是很幸运?请参阅上面的更新。
      • pagespeed中产生的缓存基本上有两种。当您重新启动 apache 时,内存缓存必须已被清除。其中文件缓存需要手动清除。重新启动 apache 不会清除文件缓存,如果通过显示旧数据进行任何重大更改,这可能会导致问题。
      【解决方案3】:

      我喜欢做什么来确保整个缓存在服务器的整个 Web 部分上

      Apache2,这是一个试运行,如果你确定要使用它,请删除“-D” -l 是内存大小 -p 是路径:

      htcacheclean -D -p/var/cache/apache2 -l100M
      

      mod_pagespeed:

      sudo touch /var/cache/mod_pagespeed/cache.flush
      

      【讨论】:

        【解决方案4】:

        重新启动 Apache 应该会刷新缓存。

        【讨论】:

        • 谢谢——你能指出我可以提供的文档/代码/其他信息作为确认吗?
        猜你喜欢
        • 2013-01-19
        • 1970-01-01
        • 1970-01-01
        • 2016-12-05
        • 2011-04-13
        • 1970-01-01
        • 1970-01-01
        • 2015-04-24
        • 2021-08-11
        相关资源
        最近更新 更多