2010-12-16 39 views
0

我的Rails應用程序爲每個客戶使用一個子域。Rails3 - 在開發中使用lvh.me,在生產中做什麼?

所以我有:

customer1.domain.com/ customer2.domain.com/ customer3.domain.com/

通常情況下,一個人必須要添加在每個客戶進入/等/主機。然而,我使用了http://railscasts.com/episodes/221-subdomains-in-rails-3中描述的lvh.me。而在開發模式下,這種方式運行得很好。

現在我想部署。有沒有辦法避免向每個客戶的etc/host添加條目?

我使用的是Nginx和Phusion Passenger。

回答

2

server_name *.domain.com;在你的nginx配置文件中(不知道etc/hosts,是不是跟蹤dns ??)將允許nginx在該特定的server塊內爲該域提供任何子域。 (如果你有權訪問nginx配置),它是一個通配符,然後是你的應用程序如何處理請求。即:

server { 
    server_name *.domain.com; 
    blah blah woof .... 
} 

一個相當全面的概述,可以發現here

+0

當然,Nginx的路線可以使用通配符的所有接來電請求。我有server_name * .davinci.dev davinci.dev;但情況是,我必須添加到/ etc/hosts這個:127.0.0.1 davinci.local,以便我的電腦知道,當我進入這臺主機 - > davinci.local我的意思是我自己的電腦 - > 127.0.0.1。通過這個設置,我可以在我的開發機器上訪問我的網站的根域。問題是文件/ etc/hosts不接受通配符。我不能說* .davinci.local,所以當我在我的網絡瀏覽器上輸入customer1.davinci.local時,我的電腦將無法識別爲localhost。 – Nerian 2010-12-18 02:55:35

+1

並且爲每個客戶端添加一個條目到localhost,這是非常不方便的,因爲可能有數百個。 – Nerian 2010-12-18 02:57:15

0

可以配置除了與子域福你的routes.rb做到這一切

相關問題