2011-03-20 139 views
2

我有多個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不是一個選項。任何人都知道如何做到這一點?

+0

你爲什麼不使用Nginx的或Apache或別的什麼嗎?有了Rails,你會遇到性能問題。 – fl00r 2011-03-20 13:42:30

回答

2

你可以把它在應用程序控制器或通過侑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 
} 
+0

這在軌道3上工作得很好。你知道軌道2的替代方案嗎?非常感謝你。 – Edu 2011-03-21 12:39:36