我有一个Rails应用程序,该应用程序使用子域来允许用户在CMS系统中拥有自己的单独数据.基本上是SaaS CMS系统,例如wordpress.com或tumblr.com.
但是,我想让用户能够选择自己的域(其子域的AV别名).例如,用户henrik.cmsdomain.com希望拥有一个自定义域,该域读取henrikswebsite.com.
我怎样才能做到这一点?我需要设置自己的名称服务器吗?我不一定要寻找完整的答案,我只是不知道从哪里开始.
我在带有Nginx,passenger,Rails 4和postgresql的ubuntu 13.10 digitalocean服务器上运行(使用模式分隔用户数据).
最佳答案
您正在寻找的是所谓的“虚拟子域”(我认为).以下是有关如何设置它们的一些信息:
> http://signalvnoise.com/posts/1512-how-to-do-basecamp-style-subdomains-in-rails
> Rails Restful Routing and Subdomains
您基本上需要在DNS中设置一个“通配符”子域(它将所有子域请求路由到您的应用程序),并让routing middleware处理该请求(并相应地路由)
域
考虑到更新,我在线上为您看了一下:
> Rails routing to handle multiple domains on single application
我没有直接的经验,但是我要说的是,您首先需要获取域以指向您的站点(更改CNAME).然后,您的路由中间件(如上面的链接中所述)可能会捕获到该错误,从而使您可以相应地“路由”请求
Heroku确实做了这件事-这很常见