如何让用户的域名指向我站点中的个人资料

时间:2010-09-05 08:46:42

标签: ruby-on-rails dns appdomain

我想通过让用户选择让他们的域名指向他们的个人资料来实现像Tumblr或Wordpress这样的东西。例如,用户访问他们的域名注册商和我的服务器的IP,然后:www.usersdomain.com将指向www.mysite.com/userid而不实际转发,以便域名仍将显示在地址栏中。

我希望您能详细说明这样做的步骤。

我正在使用Ruby on Rails,如果这有所作为的话。我的生产环境有Nginx和Passenger。

1 个答案:

答案 0 :(得分:3)

我的观点:

  1. 用户更改其网站的DNS记录以指向服务器的IP地址。在该操作之后,对您的域的每个HTTP请求都将被您的IP地址和您的应用程序“捕获”(但您应该重新配置您的HTTP服务器)。
  2. 每个HTTP请求都包含Host标头。该标题允许我们进行虚拟主机:许多主机只能指向一个IP;
  3. 在您的应用程序中,只需从请求中提取Host,然后在数据库中查询具有此类主机的用户。
  4. 刷新他的页面内容,这就是全部。

  5. 例如,您的服务的IP 100.100.100.100 ,我的域 redsocks.com 。我需要更改域名的DNS(A记录)以指向您的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
    

    我在您的域名服务中看到了我自己的页面。