トンボで動作するように Rack::Cache をセットアップしようとしています。キャッシュを Web サーバー間で共有できるように、別のサーバーに共有 redis キャッシュを配置したいと考えています。問題は、渡した構成に関係なく、提供している IP アドレスではなく、URL が localhost であると想定していることです。これは私のコードです:
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 の代わりに何を入れても、その値は無視され、localhost の redis に接続されます。
何か案は?
(Rails 3.0.10 を使用)