我们有一个 Rails 3 应用程序,它允许用户创建配置文件并使用子域访问它。例如:
现在,假设他们想将自己的域名指向他们的个人资料,因此 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/