这些 Thin 缓存日志条目是什么意思?

这些 Thin 缓存日志条目是什么意思?

我最近发布了我的 Web 应用的 Rails 3.1 升级版。我在 Unbuntu 10.04 VPS 上为该应用提供支持,后端使用 Thin,前端使用 Nginx。为了使我的应用能够与新的 Rails 资产管道配合使用,我在 Nginx 配置文件中添加了以下条目:

  location ~ ^/(assets|images|javascripts|stylesheets|swfs|system)/ {
        access_log off;
        gzip_static on; # to serve pre-gzipped version

        expires max;
        add_header Cache-Control public;

        # Some browsers still send conditional-GET requests if there's a
        # Last-Modified header or an ETag header even if they haven't
        # reached the expiry date sent in the Expires header.
        add_header Last-Modified "";
        add_header ETag "";
        break;
    }

或多或少直接来自导游,并且它有效。但是,现在我注意到我的 Thin 日志中有如下条目:

cache: [GET /] miss
cache: [GET /designs/victoria/images/gallery-3-zoom.png] miss, store
cache: [GET /blank.html] stale, invalid, store
cache: [GET /blank.html] stale, invalid, store
cache: [GET /robots.txt] stale, invalid, store
cache: [GET /parties/new] miss

这些有很多。大多数是针对 /blank.html 的。任何资产请求都是针对非管道资产的。有些是直接来自我的路由文件的 URL。我的问题:

  • 这些“cache:”条目是什么?我从未在此应用程序上明确配置缓存。
  • 如果我的设置配置错误我该如何纠正?
  • 为什么 blank.html 会收到如此多的请求(什么是 blank.html?)?

任何见解都值得赞赏!谢谢。

答案1

“cache:”条目似乎来自 Rack::Cache,在 Rails 3.1 中,当打开资源管道时,该功能就会启用。这是一件好事,因为它通过 http 标头进行 HTTP 缓存默认情况下,Rack::Cache 启用了详细选项,因此它会将所有跟踪记录到 STDERR,这就是为什么它会出现在我之前不嘈杂的 Thin 日志中。

blank.html 似乎是作为 IE6 修复的一部分,使浏览器在悬停时透明地显示 iframe 背景。我不知道为什么它会被如此频繁地请求,但该文件默认在 Rails 中并且一直都在那里。

综上所述,我的应用程序看起来是健康的,并且状态良好。

相关内容