![](/img/trans.png)
[英]My rack-proxy app works with different ports, but not different URLs
[英]Using rack-proxy with Rails to access Faye
我有一个Rails应用程序,可通过Faye提供实时功能。 我的客户将通过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.middleware.use "FayeProxy"
将中间件添加到config / application.rb ,但是当我运行rails服务器时,出现以下错误:
/gems/ruby-1.9.3-p194/gems/rack-proxy-0.5.0/lib/rack/proxy.rb:12:in'initialize':undefined method`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?' 对于#(NoMethodError)*
如果有人曾经经历过此事或知道解决方案,将对您的帮助表示感谢。
ps我正在使用Rails 3.2.13,机架1.4.5,机架代理0.5.1。
似乎机架代理不应被视为中间件,而应通过此处所述的路径进行安装: http : //inductor.induktiv.at/blog/2010/05/23/mount-rack-apps-in- rails-3 / 。
我知道这很旧,但是我只是遇到了类似的问题,但是我怀疑默认情况下, faye_proxy.rb
所在的文件夹不包含在rails中。
添加一个初始化也许./config/initializers/proxy.rb
其中包含require "#{Rails.root}/lib/faye_proxy.rb"
替换lib
用,无论你把代理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.