我正在尝试创建的网站将有每个主要管理员帐户单独的子域。对于这个问题,假设谷歌是一个客户,所以当他们注册时,我需要创建一个子域"google.mysite.com“。
然后,具有不同权限的不同个人(管理员、员工、客户)可以登录到google.mysite.com。
我正在使用Ruby on Rails作为一个平台,不知道该如何去做。什么是可靠的方法?
发布于 2014-07-11 12:44:00
这就是基于约束的路由可以提供帮助的地方。通过设置路由来接受任何子域,如下所示
get 'photos', constraints: { subdomain: /.+/ }然后,我们可以允许控制器基于request.subdomain执行操作。Railscast有一个很好的example。
我也相信devise gem也提供类似的solution。
发布于 2014-07-11 18:11:31
在操作方面,您需要在Ruby代码之上设置DNS和基础设施来支持这一点。
通配符子域
通配符解决方案将是最容易设置的,因为您只需要进行初始设置,任何新的子域都会落入其中。
一个Wildcard DNS记录将映射单个记录中的所有*.mysite.com。
像Apache httpd和Nginx这样的Web服务器支持wildcard virtualhosts以及像Heroku这样的应用程序主机,所以你可以在一个配置下容纳所有的子域。
单个子域
单独的子域可能会在未来为负载分离或基于每个域的自定义配置提供更多的灵活性,但每次您的客户注册时都需要进行初始设置,这可能涉及到Rails应用程序之外的事情。
对于DNS记录,我会使用提供API到其管理的DNS主机,如Amazon Route 53或Rackspace Cloud DNS。
对于使用API config的Ruby托管,你可能会看到像Heroku这样的应用程序主机,因为我还没有在使用config API的云提供商上看到很多"web托管“服务,除非它是针对静态文件的。
内部托管
如果你想在内部托管网站,使用一个通过托管控制面板产品暴露出来的API可能会更容易一些,比如Plesk或cpanel,这些产品支持开箱即用的web和DNS配置,而不是自己滚动。
https://stackoverflow.com/questions/24689844
复制相似问题