2012-08-31 33 views
1

我的問題是如何在Debian 6下使用Phusion Passenger + Nginx將具有適當相同子域的所有實例與端口80進行映射: 。Phusion Passenger + Nginx虛擬主機配置適用於Debian 6中的Ruby on Rails應用程序6

注:我是新手,Ruby on Rails和服務器託管,我無法表達我的視野爲問題,請原諒我,如果我錯了,或指正。

嗨,我有一個產品開發使用軌道上的紅寶石,將在一個32 GB的RAM和8核心服務器處理器的專用服務器主機。每個客戶端應該有獨立的DB和單獨的rails實例。我正在複製 - 爲每個客戶端使用單獨的文件夾複製代碼並給出不同的數據庫名稱,因此每個客戶端都用作不同的實例。基本上所有客戶端的源代碼都是相同的,但只有數據庫名稱不同,所以我將源代碼放入不同的文件夾中,併爲每個客戶端作爲單獨的rails應用程序進行凝視。

例如:

我有一個伯臨時域

www.product.com 

對於每個客戶端我需要有單獨的子域映射到具有相同的端口(80) 但具有相同的服務器不同的欄實例名稱

www.client1.product.com 
www.client2.product.com 
www.clientn.product.com 

因爲我知道如果我啓動rails實例,每個將明星T取代單獨的端口號是

client1 with start at port 3001 
client2 with start at port 3002 
client3 with start at port 3003 

我的問題是什麼我如何,如果我訪問

所有80端口與相應的相同的子域使用Phusion客運+ Nginx的Debian的6

下的實例映射

www.client4.product.com,我需要讓應用程序在端口3004

回答

1

運行,我希望你現在已經找到了解決辦法,但對於計算器歸檔的緣故,我要提供的swer。

一般意思是你應該使用反向代理(http://wiki.nginx.org/RubyonRailsMongrel)與nginx,而你的上游將是一個乘客運行你的專用rails應用程序(我將使用重複的代碼)爲了隔離您的客戶端運行環境。)您將能夠使用此方法提供負載平衡。

現在,您規定了乘客的使用,如果您使用乘客延伸編譯nginx,則可以使用一個非常簡單的設置。 (去http://www.modrails.com/documentation/Users%20guide%20Nginx.html爲更好的解釋)

server { 
    listen 80; 
    listen [::]:80 default_server ipv6only=on; # please for a better world be IPv6 compliant ! 
     server_name www.client1.product.com; 
    root /my/rails/app1; 
     passenger_enabled on; 
} 
server { 
    listen 80; 
    listen [::]:80 default_server ipv6only=on; 
     server_name www.client2.product.com; 
    root /my/rails/app2; 
     passenger_enabled on; 
} 

.......

相關問題