Назад | Перейти на главную страницу

Хостинг Linux: какова цель установки имени хоста / полного доменного имени в файле hosts?

Я только что купил Линод План хостинга VPS и следил за этим руководство установить. В разделах «Установка имени хоста» и «Обновление / etc / hosts» говорится, что задаваемое здесь полное доменное имя / имя хоста не обязательно должно быть связано с веб-сайтами, которые я собираюсь разместить, что меня смущает.

Я провел собственное исследование, прочитав множество статей, но до сих пор не совсем уверен, какую роль имя хоста / полное доменное имя играет в моем бизнесе веб-хостинга. Вот несколько основных фактов, которые мне удалось выяснить, не стесняйтесь поправлять меня, если что-то не так:

  1. Полное доменное имя должно иметь вид xxx.somedomain.com, если «xxx». опускается, значит, это не полное доменное имя.
  2. в xxx, который, как мне кажется, можно условно назвать поддоменом, также может называться "имя хоста", согласно https://kb.iu.edu/d/aiuv.
  3. На моем локальном компьютере, добавив следующую строку в hosts файл

    63.117.14.58 www.yahoo.com что угодно

все сетевые запросы для "www.yahoo.com" или "чего-то еще" будут перенаправлены на IP-адрес 63.117.14.58 (который является IP-адресом google.com). Это способ заблокировать нежелательные сайты на локальном компьютере.

Теперь в руководстве предлагается добавить эту строку в файл «hosts» на моем сервере.

12.34.56.78(//my server's IP) myhostname.anything.com myhostname

В нем упоминается, что в приведенной выше строке имя домена может быть или не быть доменом, который я собираюсь разместить, но имя хоста должно быть тем, которое я уже установил на предыдущих шагах. Мои вопросы:

1) Основываясь на факте № 3, я думаю, что эта строка перенаправляет любые запросы на сервере для myhostname.anything.com или myhostname на мой IP-адрес, но что это значит? Не следует запрашивать myhostname.anything.com с компьютера пользователя уже переведены на определенный IP-адрес (будь то мой IP-адрес или нет)? Почему мне нужно перенаправить его на свой сервер? Я понимаю, как работает HTTP-запрос: когда пользователь вводит имя домена в браузере, браузер связывается с сервером домена, а сервер домена направляет его на DNS-сервер на основе DNS-записи домена, а затем DNS. Сервер разрешит IP-адрес, а затем браузер получит данные с этого IP-адреса. Насколько я понимаю, эта процедура не имеет ничего общего с файлом "hosts" на моем сервере.

2) A. Что касается FQDN, почему имя хоста должно совпадать с именем хоста, которое я установил на моем сервере, а имя домена - нет?

Б. Что произойдет, если я установлю здесь другое имя хоста?

C. И какова цель установить или не указывать здесь мое доменное имя как полное доменное имя?

D. А что произойдет, если я установлю только полное доменное имя, но не имя хоста? как это

12.34.56.78(//my server's IP) myhostname.anything.com

Много вопросов, но я считаю, что ответы на некоторые из них частично совпадают, и в целом я думаю, что главный вопрос заключается в том, «Какую роль играет установка имени хоста / редактирование файла хоста в моем бизнесе веб-хостинга?»

Спасибо, что уделили время.

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

Файл хоста против DNS

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

Пока мы используем только файлы хоста, нам вообще не нужно использовать домены. DNS не участвует, так что кого это волнует? К сожалению, по мере роста нашей сети становится все менее устойчивым, чтобы каждое устройство независимо отслеживало имена всех устройств в нашей сети. Это приводит нас к использованию DNS и создает некоторые новые логистические препятствия.

Имя хоста или полное доменное имя

Имена хостов - это имена устройств или, если хотите, имена узлов. Это однозначно идентифицирующее имя, которое имеет значение для владельца устройства и не обязательно имеет значение или даже доступно людям, использующим службы на устройстве. Это то, что имеет в виду Linode, когда говорит, что имя не должно иметь ничего общего с услугами, которые вы размещаете.

Например, предположим, что вы владеете компанией Contoso и управляете веб-сайтом с именем example.com. Веб-сайт размещен на шести машинах с именами dalek01 через dalek06. Все, что нужно знать внешнему миру, это то, что они могут получить нужный веб-сайт, если подключат www.example.com в свой веб-браузер. Чрезмерно любознательным Повелителям Времени не нужно беспокоиться о том, что их просьба www.example.com обслуживалась dalek03.

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

Теперь мы немного усложнили задачу. Время историй!

  • Ваша компания Contoso владеет множеством настольных компьютеров, которые обмениваются данными с кластером dalek по частной сети.
  • При возникновении проблемы на одном из серверов вам необходимо войти на конкретное устройство, на котором возникла проблема. Мы не можем просто подключиться к www.example.com, потому что он размещен на нескольких разных машинах. Хорошо, что у нас есть однозначно идентифицирующее имя для сервера с проблемой!
  • Поскольку у нас большая сеть устройств, мы чаще всего хотим управлять ею с помощью DNS. Это означает, что нам нужно прикрепить имена хостов dalek01 через dalek06 в домен DNS куда-нибудь. К счастью, мы владеем contoso.com (назван в честь нашей компании), полностью отделен от www.example.com, который может быть одним из наших клиентов.
  • Поскольку Интернету не нужно знать наши внутренние IP-адреса, мы поддерживаем частный домен DNS, называемый corp.contoso.com. Все наши настольные компьютеры настроены с суффиксом поиска DNS corp.contoso.com. Это означает, что если мы создадим запись DNS с именем dalek01.corp.contoso.com, любой в нашей сети может получить доступ к этой машине, просто подключившись к dalek01 со своим SSH-клиентом. Удобный!
  • dalek01 знает, что это называется dalek01 потому что мы поместили его в файл hosts. Мы хотим, чтобы он знал, что он также называется dalek01.corp.contoso.com, но мы не хотим, чтобы DNS знал свое собственное имя. Это было бы глупо. Поэтому мы определяем псевдоним для dalek01.corp.contoso.com в файле hosts на dalek01 чтобы он знал все его имена.
  • Тем временем люди продолжают использовать www.example.com, не обращая внимания на то, что у вас есть шесть серверов с именами dalek01 через dalek06, тот факт, что ваша компания называется Contoso (не считая ваших клиентов), или что для удобства ваших сотрудников вы создали записи DNS для dalek01 через dalek06.corp.contoso.com.

Собираем все вместе

  • Ваше имя хоста имеет значение для вас и людей, которые управляют сервером, не обязательно для людей, которые пользуются его услугами.
  • Имена хостов не обязательно должны храниться в DNS (или иметь домен DNS вообще), если у вас нет нескольких устройств, совместно использующих частную сеть.
  • Для сервера глупо полагаться на DNS, чтобы разговаривать сам с собой.
  • Ввод ваших имен хостов в DNS создает необходимость также определять это полное доменное имя в вашем файле хоста, чтобы он не полагался на DNS, чтобы общаться с самим собой, используя полное доменное имя. (что, как было сказано, было бы глупо)

Надеюсь, это охватывает все основы.