2010-09-05 47 views
2

我想實現像Tumblr或Wordpress的東西,讓用戶選擇讓他們的域名指向他們的個人資料。例如,用戶轉到他們的域名註冊商和我的服務器的IP,然後:www.usersdomain.com將指向www.mysite.com/userid而不實際轉發,以便域名仍將顯示在地址欄中。如何讓用戶的域名指向他們的個人資料在我的網站

我希望你能描述這樣做的步驟的細節。

我正在使用Ruby on Rails,如果這有所作爲。我的生產環境有Nginx和Passenger。

回答

3

我的觀點:

  1. 用戶更改其網站的DNS記錄指向您的服務器的IP地址。完成該操作後,每個到其域的HTTP請求都將被您的IP地址和應用程序「抓住」(然而,您應該重新配置HTTP服務器)。
  2. 每個HTTP請求都包含Host標頭。該頭允許我們做虛擬主機這樣的事情:許多和許多主機只能指向一個IP;
  3. 在您的應用程序中,只需從請求中提取Host並使用此主機查詢您的數據庫。
  4. 刷新他的頁面內容,就這些了。

例如,你的服務的IP是100.100.100.100,我的域名是redsocks.com。我需要將我的域的DNS(一條記錄)更改爲指向您的IP。據說,我做到了。

當我指出我的瀏覽器我的域名,瀏覽器提出了以下要求(或相似)自己的IP,而不是我

GET/HTTP/1.1 
Host: redsocks.com 
... 

您的應用程序代碼(僞),該交易與我的要求:

user = User.find_by_domain(REQUEST["Host"]) 
if user == nil 
    render_not_found_page 
else 
    contents = Content.get_contents_of_user(user) 
    render_contents_of_user contents 
end 

而且我看到我的網站在您的服務在我的域名。

相關問題