Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

multi tenant with custom domain on rails

I'm creating a multi tenant application like shopify and wanna know how can I create custom domain on server that points to the same application instance? For example:

app1.mysystem.com == www.mystore.com
app2.mystem.com == www.killerstore.com

I need to do that config on CNAME like Google Apps? If so, how can I do that? Is there some good paper showing how this works ?

PS: app1 AND app2 points to the same application! Thanks

like image 599
rizidoro Avatar asked Feb 23 '23 11:02

rizidoro


1 Answers

I have a similar setup and am using nginX. What I did for ease of maintenance was accepted all the connections from nginx and did the filtering in my app.

# 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

You can have your clients have a domain record with there domain/subdomain pointing to you_ip or your_domain_pointing_to_your_ip.com and capture that in a form and save in database. Then alter the query in current_client like:

@current_client ||= Client.or(:host => request.host).or(:alias => request.host).first
like image 138
rubish Avatar answered Mar 03 '23 11:03

rubish