Rails应用程序作为多个rails应用程序的代理

时间:2011-03-20 10:55:01

标签: ruby-on-rails ruby routing

我在服务器上运行了多个rails应用程序。每个人都在一个港口(例如:8001,8002,8003,......)。

我想创建另一个rails应用程序,它将充当其他人的代理。代理rails应用程序将在域www.example.com的端口8000运行,并根据请求执行:

www.example.com:8000/app1 - 将请求传递给在端口8001上运行的应用

www.example.com:8000/app2 - 将请求传递给在端口8002上运行的应用

www.example.com:8000/app3 - 将请求传递给在端口8003上运行的应用

我知道这可以用apache,但在我的情况下,apache不是一个选项。谁知道怎么做?

1 个答案:

答案 0 :(得分:2)

您可以在Application Controller中或通过routes.rb

进行创建
match "/:app", :to => redirect{ |params|
  case params[:app] 
  when "app1"
    "http://www.example.com:8001/"
  when "app2"
    "http://www.example.com:8002/"
  when "app3"
    "http://www.example.com:8003/"
  end
}