【问题标题】:How to make users have domain name point to their profiles in my site如何让用户的域名指向他们在我网站中的个人资料
【发布时间】:2010-09-05 08:46:42
【问题描述】:

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

我希望你能详细描述一下这样做的步骤。

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

【问题讨论】:

    标签: ruby-on-rails dns appdomain


    【解决方案1】:

    我的观点:

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

    比如你的服务IP是100.100.100.100,我的域名是redsocks.com。我需要更改我的域的 DNS(A 记录)以指向您的 IP。应该是吧。

    当我将浏览器指向我的域时,浏览器会向您自己的 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
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-31
      • 1970-01-01
      • 2011-12-14
      • 1970-01-01
      • 1970-01-01
      • 2020-11-04
      • 2020-11-27
      • 1970-01-01
      相关资源
      最近更新 更多