2

我正在尝试将我的 Rack::Cache 设置为与蜻蜓一起使用。我想在单独的服务器上有一个共享的 redis 缓存,以便可以在 Web 服务器之间共享缓存。问题是,无论我传入什么配置,它都假定 url 是 localhost 而不是我提供的 IP 地址。这是我的代码:

require 'uri'
require 'dragonfly'
require 'rack/cache'
require 'redis-store'
require 'redis-rack-cache'

### The dragonfly app ###
app = Dragonfly[:images]
app.configure_with(:rails)
app.configure_with(:imagemagick)

### Extend active record ###
app.define_macro(ActiveRecord::Base, :image_accessor)
app.define_macro(ActiveRecord::Base, :file_accessor)

### Insert the middleware ###
rack_cache_already_inserted = Rails.application.config.action_controller.perform_caching && Rails.application.config.action_dispatch.rack_cache

Rails.application.middleware.insert 0, Rack::Cache, {
  :verbose     => Rails.env.development?,
  :metastore   => "redis://SOMEIP:SOME_PORT/0/metastore", # URI encoded in case of spaces
  :entitystore => "redis://SOMEIP:SOME_PORT/0/entitystore",
} unless rack_cache_already_inserted

Rails.application.middleware.insert_after Rack::Cache, Dragonfly::Middleware, :images

无论我放什么而不是 SOMEIP:SOME_PORT 该值都会被忽略,它会连接到本地主机上的 redis。

有任何想法吗?

(使用 Rails 3.0.10)

4

0 回答 0