Пользовательский субдомен с проблемой CNAME

Мне сложно понять, как использовать пользовательские домены с моим приложением. Это обычный случай наличия приложения, которое назначает пользователей субдоменам, например. user.theapp.com, и они хотят использовать CNAME, чтобы m.theirsite.com разрешился в приложении. Похоже, что большинство служб, которые делают это, требуют, чтобы вы указали им, какой у вас личный домен, и что простое добавление записи CNAME не работает. Шаги:

  1. Пользователь создает учетную запись.
  2. Мы говорим им, что они могут сделать запись CNAME на yourstuff.theapp.com (текущее местоположение).
  3. Это мое замешательство. После 1 и 2 мой персональный домен все еще не работает ... так что, как только клиент создаст эту запись CNAME и предоставит нам "m.theirsite.com", какую особую магию мы сделаем с этим, чтобы сделать эти сайты "одинаковыми"?

Заранее спасибо.


person Matt Gaidica    schedule 24.02.2011    source источник


Ответы (1)


Наше решение заключалось в использовании PHP / MySQL для решения этой проблемы. Как обычно, у вас должен быть внешний домен / поддомен CNAME для вашего приложения, однако, как вы увидите, запись CNAME не обязательно должна указывать на точный поддомен в приложении. Затем вы создадите в своей базе данных область, где пользователь сможет сообщить вам, с какого внешнего сайта он получил CNAME. На этом этапе вы будете выполнять большую часть своей аутентификации на веб-сайте на основе хоста HTTP, либо захватывая поддомен и используя его в качестве клиента, либо проверяя, находится ли хост HTTP в вашем списке CNAME, а затем ссылаясь на клиента оттуда. .

CNAME просто указывает на расположение сервера, поэтому, если вы используете подстановочные знаки в конфигурации apache, foo.myapp.com разрешается в то же расположение, что и bar.myapp.com, но в приложении можно использовать хост для извлечения из поддомена и найдите клиента («foo» и «bar»). При использовании CNAME, например m.mywebsite.com --c named -> foo.myapp.com, приложение больше не имеет этой информации о клиенте на HTTP-узле, и, как мы уже упоминали, настройка подстановочных знаков apache (* .myapp. com) просто выбрасывает поддомен ... поэтому из-за этого клиент должен сказать нам: «Я буду посещать с m.mywebsite.com, поэтому сделайте это также допустимым именем хоста для моей аутентификации».

person Matt Gaidica    schedule 17.03.2011
comment
Привет, Мэтт, спасибо за ответ. Означает ли это, что не имеет значения, присвоил ли пользователь своему личному домену имя user.myapp.com или myapp.com? Я имею в виду, что значение CNAME не имеет большого значения? Многие службы инструктируют пользователей использовать cname для user.theirapp.com, поэтому я подумал, что это дает некоторые преимущества. - person Sodbileg Gansukh; 18.12.2020