我正在尝试将我的 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)