Локальный веб-сайт, просматриваемый с помощью имени хоста или DNS

Локальный веб-сайт, просматриваемый с помощью имени хоста или DNS

У меня есть веб-сервер на моем RaspberryPi с apache2. Я могу просматривать веб-сайт с локальным IP-адресом pi, например, 192.168.xx. Я хочу просматривать его без IP в моей локальной сети, например,http://local.mypi.com.

Как я могу это сделать? Спасибо.

решение1

Чтобы осуществлять просмотр по доменному имени, а не по IP-адресу, необходимо выполнить 2 действия:

  1. Вам нужен способ разрешения доменного имени и
  2. Ваш веб-сервер должен предоставить правильную конфигурацию.

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

Разрешение доменного имени

То, как вы разрешите доменное имя, будет зависеть от вашей настройки. Самый простой способ — изменить файл «hosts» на компьютерах, которым понадобится доступ к сайту. (Почти все ОС имеют файл hosts). Вам нужны права администратора, и добавьте строку типа

  192.168.x.x   local.mypi.com

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

Другим решением было бы запустить DNS-сервер на Pi. Проблема в том, что вам нужно будет заставить клиентов использовать DNS-сервер Pi, а это может означать запуск DHCP-сервера и отключение DHCP-сервера на маршрутизаторе.

Если вы рассматриваете только устройства Linux и Mac (т. е. не Windows), вы можете использовать реализацию «Zeroconf» на вашем Pi. Настройка веб-сервера

Для HTTP на Apache есть 2 режима — основанный на имени и основанный на IP. Если вы используете конфигурацию на основе IP, вы можете запустить только набор веб-сайтов. Виртуальный хостинг на основе имени позволит вам запустить несколько веб-сайтов, но вам нужно будет указать разные конфигурации для каждого. Виртуальный хостинг на основе имени более распространен.

Если вы используете виртуальный хостинг на основе IP, вам не нужно беспокоиться о сопоставлении домена с IP-адресом на сервере — серверу неважно, какое доменное имя используется.

Если вы используете виртуальный хостинг на основе имени, вам необходимо добавить конфигурацию для вашего доменного имени, как показано ниже, в конфигурацию Apache.

 <VirtualHost *:80>
 ServerName local.mypi.com
 DocumentRoot "/path/to/websitefiles"
 </VirtualHost>

Связанный контент