Faye を介してリアルタイム機能を提供する Rails アプリがあります。クライアントはexample.com:9292/fayeを介して Faye サーバーにアクセスします。そのアドレスを使用してマシンの開いているポートを公開する代わりに、ラック ミドルウェアを追加し、「rack-proxy」gem を使用して、example.com /fayeリクエストをexample.com:9292/fayeにプロキシしようとしています。私の Rails ミドルウェア コードは次のようになります。
class FayeProxy < Rack::Proxy
def rewrite_env(env)
request = Rack::Request.new(env)
if request.path =~ %r{^/faye}
env["HTTP_HOST"] = "localhost:9292"
end
env
end
end
また、ミドルウェアをconfig/application.rbに追加しましたconfig.middleware.use "FayeProxy"
が、Rails サーバーを実行すると次のエラーが発生します。
/gems/ruby-1.9.3-p194/gems/rack-proxy-0.5.0/lib/rack/proxy.rb:12:in 'initialize': 未定義のメソッド 'key?' # (NoMethodError) の場合
meta_request gem を削除しても取得できます
*/gems/ruby-1.9.3-p194/gems/rack-proxy-0.5.1/lib/rack/proxy.rb:12:in initialize': undefined method
key?' for # (NoMethodError) *
誰かがこれを以前に経験したことがある、または解決策を知っている場合、どんな助けも本当に感謝しています。
Ps 私は Rails 3.2.13、rack 1.4.5、rack-proxy 0.5.1 を使用しています。