2

我想用我新部署的 Rails Web 应用程序实现清漆。

Rails 版本 3.2.12 与

Ruby 1.9.2p318(2012-02-14 修订版 34678)[i686-linux]

在我的应用程序中,用户身份验证是由 cookie 完成的,但是当 cookie 存在时,varnish 不会缓存内容。所以我发现对于登录的用户,varnish 正在将请求转发到我的应用程序。我对 varnish 很陌生,不知道如何解决这个问题。可能是我需要在清漆配置文件中放置一些块。但事情是实时的,用户正在使用我的应用程序。我已经停止了清漆。任何共同的帮助都会得到真正的应用。

4

1 回答 1

2

我在这个博客Ruby on Rails、Varnish 和用户相关内容中找到了解决方案,我认为根据博客的解决方案是:

获得此问题的简单解决方案的一个好方法是将应用程序 cookie 添加到 Varnish 用于查找缓存内容的哈希中。这是在配置文件的 vcl_hash 函数中完成的:

sub vcl_hash {
   if (req.http.Cookie ~ "your_application_cookie") {
     hash_data(req.url);
     hash_data(req.http.Cookie);
 return (hash);
   }
}
于 2013-04-26T13:31:24.130 回答