@victafonenko

Так как же все-таки правильно прикреплять домены и поддомены к хостингу, какой самый правильный способ?

Здравствуйте, дайте пожалуйста новичку правильное воспитание и правила хорошего вкуса в делах связывания домена/и его поддоменов с хостингом.

Как я понял есть два способа,
прописыванием NS записей ( как здесь https://www.reg.ru/support/hosting-i-servery/sajty... )

Или просто добавлением в домене A-записей с IP адресом сервера, как в инструкции здесь support.2domains.ru/knowledgebase.php?article=66 . Как то с самого начала пользуюсь именно этим способом, как советуют в статье,
т.е. добавляю три А-записи к домену с адресом хостинг-сервера, типа:
@
www
*

И вроде бы все работает, и никаких dns серверов прописывать не нужно.
Только заметил я недавно, что с таким конфигом на Апаче-хостинге происходят невероятные вещи, к примеру любой поддомен сайта site.ru (совершенно любой, можно наугад, к примеру sub1.site.ru) будет отображать содержимое сайта site.ru, хотя я конфиги не трогал и не изменял. А к примеру домен просто привязанный вышеописанным способом через А записи к серверу но не имеющий созданной для него хост-записи и директории - будет отображать по своему адресу содержимое другого соседнего сайта на хостинге. Жесть вообщем.

Скажите пожалуйста, так как правильно, по православному надо все делать? И как тогда направлять на хостинг поддомены основного домена, чтобы все корректно и по правильному отображалось и только там, где нужно?
  • Вопрос задан
  • 3366 просмотров
Решения вопроса 1
martin74ua
@martin74ua Куратор тега Linux
Linux administrator
Оба варианта правильные.

По поводу непоняток во втором варианте. Ну так вы же сами указали, что * - т.е. все поддомены ссылаются на ваш сайт. А дальше все происходит так, как вы настроите:
для апача:
<VirtualHost a.b.c.d:80>
ServerName site.ru
ServerAlias www.site.ru *.site.ru
...
</VirtualHost>

В этом варианте вы указали, что основное имя сайта - site.ru, но кроме него принимать запросы на www.site.ru и *.site.ru. Честно говоря www.site.ru в ServerAlias является излишним.
Т.е. любой поддомен вплоть до kfjjvkfjvbkjbvkjbvkjvbkejbv.site.ru приведет на ваш виртхост.
Если же в ServerAlias не указан *.site.ru - то произойдет следующее. Запрос придет на сервер, но подходящего виртхоста нет. Тогда апач отдаст этот запрос на обработку либо первому виртхосту в конфиге, либо так называемому default. Если админы хостинга не настроили default виртхост - значит отработает какой нить сайт с этого сервера.
Отсюда вывод - если уж вы указываете * IN A a.b.c.d в конфиге зоны - будьте добры корректно настроить виртхост - либо прописать *.site.ru в алиасе, либо создавайте для каждого нужного вам поддомена свой виртхост. Но это все равно не освободит вас от необходимости указать *.site.ru в алиасе какого нить своего виртхоста.
Не хотите такого поведения - прописывайте в настройках днс ровно те записи, которые вам нужны. Ну и виртхосты под них делайте.

Разница между прописыванием NS серверов и A записей - это просто место, где вы будете рулить доменом. Если вы перенесли NS сервера вашего домена на сервера хостинга - то необходимые записи в днс надо создавать в панели управления хостингом. Если же только A записи - то управление доменом остается у регистратора, а управление хостингом - у хостера.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
что такое NS записи? разберитесь с терминами.
Правильно - А запись, чтобы по адресу mydomain.com вы попадали на нужный сервер (определялся верный IP)
NS-сервер в записи указывает на NS сервера, которые будут отвечать тем, кто будет искать mydomain.com

А то, что у вас apache на хостинге настроен криво, это уже другой вопрос. Apache поддерживает виртуальный хостинг, и на одном и том же IP могут висеть разные сайты. Как Apache настроен, так он и будет отвечать для неизвестных ему сайтов (выдавать дефолтный например)
Ответ написан
Комментировать
Ogogon
@Ogogon
DNS всегда работает одним способом. Каждую зону (домен) обслуживают как минимум два DNS-сервера. Первичный (primary) хранит оригинал файла, описывающего зону, IP-адреса ее машин, поддомены и другую информацию. Вторичный (secondary) сервер, или серверы, хранит те же сведения, получаемые с первичного. Это страховка от его отказа. В идеале все серверы должны иметь различные сетевые подключения. Все они перечислены в файле зоны, как записи типа 'NS'.

DNS-серверы могут быть у самого владельца ресурса, их может предоставить web-хостер или регистратор, при делегировании домена. Главное, чтобы они были, не меньше двух, и с синхронными сведениями.

Редактировать файл зоны и его записи можно как непосредственно, так и через web-интерфейс. Это ничего не меняет.

Если Вы создаете web-сервер, то запись о нем должна быть в зоне его домена, т.е. в итоге должен быть установим его IP-адрес. Это запись типа 'А' или ссылка на другую запись типа 'А'.

Теперь о web-сервере. Его протокол позволяет получать сведения о доменном имени сайта, к которому осуществляется обращение.

Поэтому, нескольким разным сайтам можно выдать один и тот-же IP-адрес. Это разрешенный прием. Web-сервер все равно поймет, к какому из них осуществляется обращение.
Такая хитрость называется 'name based virtual hosting' или 'виртуальный хостинг базирующися на доменных именах'.

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

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

Войти через центр авторизации
Похожие вопросы