我最近部署了一个 Octopress 博客(这是一个基于 Jekyll 构建的博客平台)。这是一个静态站点博客生成器,没有动态内容或数据库可供使用。它由 nginx 提供服务。
我的问题是,我应该设置什么适当的 expires 指令或 Cache-Control 标头,以确保访问者在访问时无需手动刷新即可获得网站的最新版本?由于该网站只是 .html 文件,因此似乎缓存得相当频繁。我尝试过一百万种不同的组合,expires modified + xxxx
甚至直接尝试expires off
,但我似乎无法理解。我对处理这样的缓存非常陌生,特别是对经常更改的静态文件,显然如果网站没有已经改变那么我希望它可以从缓存中提供。
更新(但仍未解决):
我找到了 open_file_cache,对其进行了调整。仍然没有结果。我似乎想要做的是使用 nginx 作为代理缓存,并使用带有 ETag 的 Apache?真的没有方便的方法让 nginx 更好地处理来自客户端的条件请求吗?
TL;DR:我正在运行一个静态文件博客,并且我想设置 nginx,以便在博客最近没有更新时仅从缓存中提供服务,但是我太笨了,无法自己弄清楚,因为我对 Web 服务器还比较陌生。
答案1
我好像已经明白了。
我将expires
指令和open_file_cache_xxx
指令结合起来if_modified_since before
,现在看来一切都按我预期的方式进行。