多租户在轨道上使用自定义域

riz*_*oro 3 apache ruby-on-rails multi-tenant

我正在创建一个像shopify这样的多租户应用程序,并想知道如何在服务器上创建指向同一应用程序实例的自定义域?例如:

app1.mysystem.com == www.mystore.com
app2.mystem.com == www.killerstore.com
Run Code Online (Sandbox Code Playgroud)

我需要在像Google Apps这样的CNAME上进行配置吗?如果是这样,我该怎么做?是否有一些好文章展示了它的工作原理?

PS:app1和app2指向同一个应用程序!谢谢

rub*_*ish 6

我有类似的设置,我正在使用nginX.为了便于维护我做了什么接受了来自nginx的所有连接,并在我的应用程序中进行了过滤.

# application_controller.rb
before_filter :current_client

private
def current_client
  # I am using MongoDB with Mongoid, so change the syntax of query accordingly
  @current_client ||= Client.where(:host => request.host).first
  render('/public/404.html', :status => :not_found, :layout => false) unless @current_client
end
Run Code Online (Sandbox Code Playgroud)

你可以有你的客户有一个域纪录有域/子域指向you_ipyour_domain_pointing_to_your_ip.com与捕获的形式,保存在数据库中.然后改变查询,current_client如:

@current_client ||= Client.or(:host => request.host).or(:alias => request.host).first
Run Code Online (Sandbox Code Playgroud)