标签: rack-cache

Heroku雪松堆栈中机架缓存与清漆的缺点?

之前的2个Heroku应用程序堆栈带有一个Varnish层,它根据http头自动反向代理缓存内容.

新的Heroku雪松堆没有这个Varnish层.Heroku建议使用rack-cachememcache.

与以前使用清漆层的堆叠相比,这是否有缺点?使用机架缓存,服务缓存层的服务器是否更少,并且以不太优化的方式?

heroku varnish rack-cache

21
推荐指数
2
解决办法
6029
查看次数

Heroku Cedar Stack - 机架缓存标题

我无法想象我的生活.尝试使用Rack :: Cache来缓存Heroku上的一些静态公共页面,以及在它通过反向代理时执行操作缓存.

例如,这是我的"home"动作中的代码:

class StaticPagesController < ApplicationController
  layout 'public'

  caches_action :about, :contact, ......, :home, .....

  ......

  def home
    last_modified = File.mtime("#{Rails.root}/app/views/static_pages/home.html.haml")
    fresh_when last_modified: last_modified , public: true, etag: last_modified
    expires_in 10.seconds, :public => true       
  end
Run Code Online (Sandbox Code Playgroud)

对于所有意图和目的,这应该有一个公共缓存控制标记,max-age 10 no?

$ curl -I http://myapp-staging.herokuapp.com/

HTTP/1.1 200 OK
Cache-Control: max-age=0, private, must-revalidate
Content-Type: text/html; charset=utf-8
Date: Thu, 24 May 2012 06:50:45 GMT
Etag: "997dacac05aa4c73f5a6861c9f5a9db0"
Status: 200 OK
Vary: Accept-Encoding
X-Rack-Cache: stale, invalid
X-Request-Id: 078d86423f234da1ac41b418825618c2
X-Runtime: 0.005902
X-Ua-Compatible: IE=Edge,chrome=1
Connection: keep-alive
Run Code Online (Sandbox Code Playgroud)

我做错了什么吗?我觉得有一些陈旧的,无效的缓存响应...这是我第四次点击页面.

配置信息: …

caching ruby-on-rails heroku rack-cache

8
推荐指数
1
解决办法
1579
查看次数

Rails 3.1和Http页面缓存

鉴于Heroku Cedar没有Varnish提供的http缓存我想使用Rack::Cache.我被告知rails 3.1.1 Rack::Cache默认处于活动状态,我只需要确保在配置中:

config.action_controller.perform_caching = true
Run Code Online (Sandbox Code Playgroud)

我需要选择一个缓存存储,对于我正在使用的这个实验:

config.cache_store = :memory_store
Run Code Online (Sandbox Code Playgroud)

在我要缓存的页面的操作中,我添加了以下行:

response.header['Cache-Control'] = 'public, max-age=300'
response.header['Expires'] = CGI.rfc1123_date(Time.now + 300)
Run Code Online (Sandbox Code Playgroud)

此代码用于与Varnish一起使用,第一个请求将返回200,随后(5分钟)将返回a 304.

Rails 3.1和Heroku Cedar Stack不会发生这种情况.我确实在响应中获得了这些标头,但后续请求返回200而不是304.

我究竟做错了什么?谢谢.

ruby-on-rails heroku ruby-on-rails-3.1 rack-cache cedar

7
推荐指数
1
解决办法
1050
查看次数

rails rack cache - 如何手动清除所有缓存

我通过rack-cache缓存了一个页面,现在浏览器从不显示更新的页面,因为它显示了缓存版本.

如何清除所有缓存?(注意:我从rails_app_root/public目录中删除了所有缓存的页面).我甚至尝试禁用机架缓存,但它仍然显示页面的缓存版本.

有任何想法吗?

ruby-on-rails rack-cache

6
推荐指数
1
解决办法
1962
查看次数

Rails应用程序的Varnish和Rack-Cache有什么意义?

我对Rails应用程序的Varnish和Rack-Cache的目的感到有点困惑.在config/environments/production.rb缓存中可以设置类似的东西

config.static_cache_control = "public, max-age=3600"

鉴于此,如果您可以在Rails应用程序本身中设置缓存,那么Varnish和Rack-Cache的目的究竟是什么?

是什么导致默认的Rails应用程序使用机架缓存?

caching ruby-on-rails varnish ruby-on-rails-3 rack-cache

6
推荐指数
1
解决办法
3071
查看次数

无法在任何来源中找到rack-cache-1.0.3

我已经创建了一个非常基本的Rails 3.1应用程序,部署到运行Ruby 1.8.7(P334)的盒子(我不能轻易地转到1.9.2.不幸的是).

在部署并运行'bundle install'之后,我尝试运行一个控制台:

bundle exec rails console
Run Code Online (Sandbox Code Playgroud)

我得到:

无法在任何来源中找到rack-cache-1.0.3

并且控制台没有出现.

似乎这个特定版本的rack-cache被ActionPack 3.1.0列为依赖项.

有人可以向我解释我需要做些什么来解决这个问题,即让捆绑商将这个版本的rack-cache附加到项目中?

另外我读到Bundler将项目特定的GEM存储在"其他地方",即不再存在于全局Ruby GEM路径中.该项目特定地点是否有默认位置?

哦,我还继续使用Rails 3.1获得大量"无效的gemspec"警告,即:

[/usr/local/lib/ruby/gems/1.8/specifications/rack-cache-1.0.3.gemspec]中的gemspec无效:规范中的日期格式无效:"2011-08-27 00:00:00.000000000Z"

ruby gem bundler ruby-on-rails-3.1 rack-cache

3
推荐指数
1
解决办法
932
查看次数

Rails 3.2 Rack :: Cache HTTP标头和动作缓存

下午好,

我遇到了一些问题,试图将HTTP缓存与Rack :: Cache和动作缓存相结合(在我的Heroku托管的应用程序上).

单独使用它们似乎正在起作用.启用操作缓存后,页面加载很快,日志会建议缓存.通过控制器中的HTTP缓存(eTag,last_modified和fresh_when),似乎设置了正确的标头.

但是,当我尝试将两者结合起来时,它似乎是动作缓存,但HTTP标头总是max_age:0,must_revalidate.为什么是这样?难道我做错了什么?

例如,这是我的"home"动作中的代码:

class StaticPagesController < ApplicationController
  layout 'public'

  caches_action :about, :contact, ......, :home, .....

  ......

  def home
    last_modified = File.mtime("#{Rails.root}/app/views/static_pages/home.html.haml")
    fresh_when last_modified: last_modified , public: true, etag: last_modified
    expires_in 10.seconds, :public => true       
  end
Run Code Online (Sandbox Code Playgroud)

对于所有意图和目的,这应该有一个公共缓存控制标记,max-age 10 no?

$ curl -I http://myapp-staging.herokuapp.com/

HTTP/1.1 200 OK
Cache-Control: max-age=0, private, must-revalidate
Content-Type: text/html; charset=utf-8
Date: Thu, 24 May 2012 06:50:45 GMT
Etag: "997dacac05aa4c73f5a6861c9f5a9db0"
Status: 200 OK
Vary: Accept-Encoding
X-Rack-Cache: stale, invalid
X-Request-Id: 078d86423f234da1ac41b418825618c2
X-Runtime: 0.005902
X-Ua-Compatible: IE=Edge,chrome=1
Connection: …
Run Code Online (Sandbox Code Playgroud)

caching reverse-proxy ruby-on-rails rack-cache

3
推荐指数
1
解决办法
2576
查看次数