2010-09-05 58 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 

而且我看到我的网站在您的服务在我的域名。

相关问题