@TheMarser

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

В общем есть такая задача: есть сайт, нужно сделать так, чтобы пользователи могли привязывать домены к сайту. То есть у каждого пользователя есть личная страница: site.com/login. Пользователь купил домен login.com и хочет его прикрепить к своей странице. Как я понял, сначала он прописывает NS хостинга, на котором расположен этот сайт, и тут и появился вопрос - как привязать домен к сайту? Можно конечно написать парсер... но мне кажется есть лучший способ. Должно быть так: пользователь вводит домен, а потом php скрипт привязывает его к хостингу. Хостинг - VPS, доступ к командной строке есть
  • Вопрос задан
  • 2501 просмотр
Пригласить эксперта
Ответы на вопрос 3
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Пользователь должен прописать Ваш DNS (IP1, IP2) а дальше Вы вносите у себя все записи. Нет смысла пользователю заморачиваться еще с DNS и CNAME. Представляю как он будет "любить" подобные привязки после этого!)
1. Проверяете принадлежность домена этому пользователю.
2. Создаёте на DNS сервере A-запись (по-примеру!) A login.com xxx.xxx.xxx.xxx
где xxx.xxx.xxx.xxx - IP вашего Web-сервера.
3. Делаете роутинг на запросы к login.com к нужному серверу (например, через vhosts.conf):
<VirtualHost XXX.XXX.XXX.XXX>
ServerName yoursitename.com
ServerAlias login.com
ServerAlias login2.com
ServerAlias blablabla.com
DocumentRoot /home/www/yoursitename.com/htdocs/
</VirtualHost>

4. Дальше делаете обработку на основе запрошенного домена через mod_proxy/mod_rewrite и т.д.
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Пользователь регает доменное имя и добавляет CNAME запись что этот домен на самом деле ссылается на другой домен, ваш, то есть оставляет NS cервера свои. И все. При заходе на этот домен будет расолвиться ваш сайт. А на вэбсервере или в маршрутизаторе уже можно разрулить какому пользователю пренадлежит доменное имя. Если паритесь по поводу производительности - принадлежность доменного имени к пользователю можно вынести в кэш в памяти (через рэддис например) и большую часть маршрутизации переложить на плечи того же nginx-а или просто уменьшить оверхэд за счет обращения в базу лишнего.
Ответ написан
Комментировать
@TheMarser Автор вопроса
CNAME это всё же не то, мне не редирект нужен. А вот xmoonlight дал правильное решение, я разобрался с CPanel Api и теперь автоматически происходит привязка доменов
Теперь вот такой вопрос: а как проверить, принадлежит ли домен пользователю?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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