Как оказать cname вперед поддержку программному обеспечению SaaS

Существует хорошая статья здесь о константе в C++. Это - довольно прямое мнение, но надежда это помогает некоторым.

10
задан Thejesh GN 10 June 2009 в 14:16
поделиться

3 ответа

Как сопоставить имя домена с идентификатором пользователя при поступлении запроса?

Очевидно, вам придется где-то хранить эту информацию, скорее всего, в базе данных.

  1. Добавить таблицу базы данных домены со столбцами:

    • customerId
    • имя
    • активный (1 или NULL)
    • вызов

    Добавьте уникальный ключ для (name, active), чтобы гарантировать, что имя домена отображается только один раз.

  2. Когда клиент пытается добавить домен, добавьте строку с активным = NULL и задайте запрос на случайную строку.

    Покажите случайную строку для клиента и попросите его разместить веб-страницу с ней на сайте или создать фиктивная DNS-запись с ней для подтверждения права собственности на домен (так это делают Google Apps).

    Вы можете подтвердить право собственности, отправив электронное письмо контактному лицу по административным вопросам или каким-либо другим способом.

  3. Когда клиент говорит, что он сделал то, что вы ему проинструктировали на шаге № 2, подтвердите это и установите active = 1, вызов = NULL.

    Если домен ранее был активен для какого-то другого клиента, удалите эти записи или установите active = 0.

  4. Попросите клиента добавить запись CNAME для своего домена и переслать ее в ваш домен, например hosted.myservice.com (Google использует ghs.google.com для Google Apps).

  5. При поступлении запроса выполните

     SELECT customerId FROM domains WHERE name =: requestDomain И активный = 1

    Если домен ранее был активен для какого-то другого клиента, удалите эти записи или установите active = 0.

  6. Попросите клиента добавить запись CNAME для своего домена и перенаправить ее в ваш домен, например размещенный. myservice.com (Google использует ghs.google.com для Google Apps).

  7. При поступлении запроса выполните

     SELECT customerId FROM domains WHERE name =: requestDomain AND active = 1

    Если домен ранее был активен для какого-то другого клиента, удалите эти записи или установите active = 0.

  8. Попросите клиента добавить запись CNAME для своего домена и перенаправить ее в ваш домен, например размещенный. myservice.com (Google использует ghs.google.com для Google Apps).

  9. При поступлении запроса выполните

     SELECT customerId FROM domains WHERE name =: requestDomain AND active = 1
    

Лучшим способом может быть автоматическое предложение вашим клиентам домена в формате .myservice.com , в дополнение к пользовательским доменам. Это дает вам два преимущества:

  • Клиенты, которые не хотят использовать свой собственный домен, все равно могут настроить свою страницу входа, например, с логотипом компании.

  • Для пользовательских доменов вы можете попросить своего клиента переслать их на .myservice.com вместо общего hosted.myservice.com .

    Это позволяет горизонтально разделить клиентов между несколькими серверами без необходимости просить клиентов изменить что-нибудь с их стороны. Например, вы можете предоставить клиентам возможность выбрать, будет ли их учетная запись размещена в ЕС или США. Когда они его меняют, просто перенесите их данные и обновите .myservice.com . Их личный домен будет работать автоматически.

Для этого вам нужно будет настроить запись DNS с подстановочными знаками для *. Myservice.com (если вам также не нужна последняя функция, и в этом случае вы придется вести отдельные записи).

15
ответ дан 3 December 2019 в 22:01
поделиться

Одно из решений, которое вы можете использовать, - это настроить WildCard DNS Record для вашего приложения, и пусть само приложение проверяет RequestURI, чтобы узнать, на какое имя хоста приходят пользователи. on.

Я знаю, что это очень расплывчатый ответ, но похоже, что настроена запись WildCard, с единственной функцией проверки имени хоста - лучший выбор. Таким образом, вам не нужно настраивать запись DNS каждый раз, когда клиент регистрируется, и у вас будет больше времени для себя, чтобы заняться другими делами ... например, добавлением новых функций в ваше приложение!

1
ответ дан 3 December 2019 в 22:01
поделиться

Я не совсем уверен, действительно ли я понимаю, что вы хотите сделать, но я пытаюсь дать вам возможное решение (по крайней мере, для Java-части вашей проблемы).

Одно Можно было бы настроить сервер приложений таким образом, чтобы каждый запрос обрабатывался одним-единственным сервлетом (web.xml). Этот сервлет может узнать URL-адрес запроса ( HttpServletRequest.getRequestURI ) и извлечь имя пользователя. Тогда вы узнаете о пользователе и сможете использовать эту информацию для всего, что захотите.

Имейте в виду, что в то, что вы хотели бы сделать, задействовано множество DNS-вещей! (По крайней мере, насколько я понимаю.)

0
ответ дан 3 December 2019 в 22:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: