Подтвердить что ты не робот

Rails, Heroku и Subdomains. Является ли мой особый случайный сценарий выполнимым?

Вот мой сценарий:

У меня есть приложение, которое должно поддерживать несколько клиентов. Каждому клиенту будет предоставлен субдомен для службы. У нас также будет веб-сайт брошюры, который не имеет приложения, его просто сайт о продукте и о том, как потенциальные клиенты могут настроить учетную запись у нас.

Дано:

www.mycoolsite.com будет указывать на приложение брошюры на Heroku. client1.mycoolsite.com, client2.mycoolsite.com и client3.mycoolsite.com будут указывать на одно и то же приложение SaaS, которое могло бы различать каждый запрос, и я должен иметь возможность обрабатывать, чтобы они видели только их дату (то есть устанавливали глобальный client_id или что-то как это)

Как мне это сделать? Я много не делал с DNS, поэтому я почти не знаю, с чего начать.

Спасибо.

4b9b3361

Ответ 1

Нет пота. Мы делаем это сейчас, в Хероку. Мы используем Godaddy для регистратора домена, но любая панель управления DNS позволит вам сделать то же самое.

Другие объяснения, которые я прочитал здесь, немного обобщены, вот специфика...

Объяснение в heroku очень хорошо, при: http://docs.heroku.com/custom-domains (там даже очень хороший скринкаст показывает шаг за шагом)

Ключевым моментом является то, что если ваш домен ROOT (mycoolsite.com) находится в Heroku, вы хотите создать три записи "A", потому что они делают некоторые отказоустойчивые кроссоверы. Таким образом, у вас будет запись A для

75.101.163.44
75.101.145.87
174.129.212.2

Теперь для каждого поддомена вы создаете запись C

www  -> proxy.heroku.com
client1 -> proxy.heroku.com
client2 -> proxy.heroku.com
client3 -> proxy.heroku.com

СЕЙЧАС на стороне HEROKu у вас есть два приложения? "Приложение для брошюр" и приложение saas.

Войдите в систему и для каждого приложения перейдите в раздел Ресурсы → Аддон → Получить дополнительные дополнения → Пользовательские домены (бесплатно)

для приложения брошюры, добавьте ОДИН домен: www.mycoolsite.com

для приложения saas, добавьте каждого из клиентов, например:

client1.mycoolsite.com 
client2.mycoolsite.com 
client3.mycoolsite.com

Что это. работает как чемпион. Получайте удовольствие.

Ответ 2

То, что вы пытаетесь сделать, очень возможно и довольно легко сделать.

Вам понадобится комбинация записей A и CNAME. Проще говоря, A записывает имена хостов на IP-адреса, а записи CNAME действуют как псевдонимы для записей A.

Предположим, что ваше приложение SaaS размещено в 10.0.0.1, а ваше приложение Heroku находится на 192.168.0.1, и вы хотите, чтобы www.mycoolsite.com и mycoolsite.com указывали на один и тот же IP-адрес.

(Примечание. Я никогда не размещал ничего в Heroku, поэтому настройка DNS может немного отличаться)

Прежде всего вам понадобится запись A для самого домена. (Я использовал BIND File File Syntax здесь, надеюсь, у вашего провайдера DNS гораздо более простая система администрирования.)

mycoolsite.com.      A      192.168.0.1    ; heroku
www                  CNAME  mycoolsite.com ; also heroku

Эти две записи говорят нам, что mycoolsite.com должен указывать на IP-адрес Heroku и что www.mycoolsite.com является альтернативным именем для mycoolsite.com, которое также будет разрешено для IP-адреса Heroku.

Теперь настройте DNS для своего сайта SaaS. Вы можете настроить запись A для каждого поддомена, но если вы переместите серверы, у вас будет много IP-адресов для обновления. Самый простой вариант - настроить одну запись A, а затем указать поддомены приложения на ней:

sassapp              A      10.0.0.1        ; saas app server canonical name
client1              CNAME  sassapp         ; alias
client2              CNAME  sassapp         ; alias
client3              CNAME  sassapp         ; alias

Затем вы можете добавить столько CNAME, сколько вам нужно.

Ответ 3

Я не вижу в этом проблемы. У Rails была поддержка подобных поддоменов в прошлом с помощью таких камней, как subdomain_fu. В Rails 3 поддержка поддоменов фактически встроена и покрыта Райаном Бейтсом http://railscasts.com/episodes/221-subdomains-in-rails-3. Взгляните на этот скринкаст для хорошего направления, с чего начать. Я полагаю, вам понадобится добавление пользовательских доменов для Heroku http://docs.heroku.com/custom-domains.

Ответ 4

Это не будет проблемой. Для DNS настройте запись A для mycoolsite.com, указывая на сервер, на котором вы хотите приложение. Настройте запись A для www.mycoolsite.com, которая настроена для heroku. Теперь вы также захотите перенаправить трафик, который приходит на mycoolsite.com без www, и перенаправить на www.mycoolsite.com, это будет поддерживать домен верхнего уровня, обслуживающий ваше приложение брошюры. После того, как запросы поступают в ваше приложение, вы можете следовать руководству, связанное с этим рейдфивом, которое поможет вам обработать поддомены внутри вашего приложения.