Вашему клиенту потребуется настроить DNS, чтобы его домен указывал его или его часть на ваш адрес.Это может быть сложно координировать, особенно если адрес сервера, на котором вы размещаете сервис, может время от времени меняться.Намного проще перенаправить субдомен клиента на ваш субдомен.
Вам также понадобится таблица соответствия, которая сопоставляет домен клиента с учетной записью клиента.Обычно это выражается примерно так:
before_filter :load_customer_from_host
def load_customer_from_host
# Strip "www." from host name to search only by domain.
hostname = request.host.sub(/^www\./, '')
@customer = Customer.find_by_host!(hostname)
rescue ActiveRecord::RecordNotFound
render(:partial => 'customer_not_found', :layout => 'application', :status => :not_found)
end
. Предполагается, что у вас есть модель Customer с полем 'host', в котором указано что-то вроде customer1.myapp.com или customer1.com, что бы ни соответствовалополе хоста.
При настройке приложения вам потребуется конфигурация виртуального хоста, которая отвечает на все произвольные доменные имена.Это легко сделать, если это единственный размещенный сайт, так как это поведение по умолчанию.Если вы делаете это на виртуальном хостинге, вам может потребоваться настроить псевдоним для каждого домена клиента, что может быть неприятно.