gpt4 book ai didi

ruby-on-rails - 多个域通过显示不同内容的名称服务器指向单个 Heroku Rails 应用程序?

转载 作者:行者123 更新时间:2023-12-03 14:42:39 24 4
gpt4 key购买 nike

我们有一个 Rails 3 应用程序,它允许用户创建配置文件并使用子域访问它。例如:

  • user1.app.com
  • user2.app.com
  • user3.app.com

  • 现在,假设他们想将自己的域名指向他们的个人资料,因此 www.user1.com 显示 user1.app.com,而 www.user1.com/my-content/显示 user1.app.com/my-content/.他们是否可以简单地将名称服务器更改为指向我们,而我们处理路由?如果用户除了更改他们的名称服务器之外还必须进行任何 DNS 配置,恐怕这将是一个交易破坏者。

    谢谢!

    最佳答案

    这真的是两个问题。
    所以我想我会这样回答。

    如何允许客户向我的基于 heroku 的应用程序添加自定义域?

    所以,在你的例子中,他们的域名是 www.user1.com
    有两件事需要发生

  • www.user1.com需要将应用添加到您的 heroku 域
  • www.user1.com的DNS需要设置到heroku服务器

  • 为了添加这个新域,我猜您需要在应用程序中存储自定义域,
    并且当它被更改或创建时,确保设置一个排队任务以将此配置更改推送到 heroku。

    为了正确地做dns,我希望他们添加一个 CNAME就足够了。为 user1.app.com .
    因此,如果您有一个通配符 CNAME 链接到 heroku 的 dns,您可以避免在 Heroku 再次受到 DOS 攻击时可能发生的停机类型。

    如何显示基于域的内容,而不仅仅是子域?

    好吧,不知何故你已经区分了 user1.app.com来自 user2.app.com
    也许你只是闻了闻 request.host .
    现在您只需先尝试自定义域。

    也许这会奏效。
    before_filter :set_client

    def set_client
    @client = Client.find_by_custom_domain(request.host) || Client.find_by_subdomain(request.host.split(".").first)
    unless @client
    raise "unrecognised domain #{request.host}"
    end
    end

    关于ruby-on-rails - 多个域通过显示不同内容的名称服务器指向单个 Heroku Rails 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6360944/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com