Как заставить мои локальные сетевые машины вызывать локальный веб-сервер по URL?

Как заставить мои локальные сетевые машины вызывать локальный веб-сервер по URL?

У меня четыре компьютера подключены к одному коммутатору, но не подключены к Интернету.

Один из компьютеров (большой на картинке) мощнее остальных и работает под управлением Ubuntu, с тремя живыми веб-серверами Node.js с различными приложениями на разных портах. Другие компьютеры работают под управлением Windows.

Я хочу, чтобы остальные три компьютера могли получить доступ к веб-серверам, вызвав URL, например

  • файлы.bugsteins --> 192.168.0.5:3000
  • chat.bugsteins --> 192.168.0.5:3001
  • устройства.bugsteins --> 192.168.0.5:3002

Каков наилучший (в первую очередь, по времени настройки) способ сделать это?

До сих пор я пробовал Bind9 на серверной машине и назначал статические IP-адреса и вручную жестко запрограммировал DNS на трех клиентских машинах, но это не работает, и пока я работаю над этим, я думаю, что опубликую этот вопрос на случай, если у кого-то найдется лучший способ.

Сетевая архитектура

решение1

Каков наилучший (в первую очередь, по времени настройки) способ сделать это?

Не СВЯЗЫВАЙТЕ.

Отредактируйте c:\windows\system32\drivers\etc\hostsфайл на каждом рабочем столе и укажите в этих именах значение 192.168.0.5.

192.168.0.5 files.bugsteins 
192.168.0.5 chat.bugsteins
192.168.0.5 devices.bugsteins

Добавьте веб-прослушиватель на порт 80 на сервере, используя настройки Node.js или базовую установку веб-сервера (Lighttpd, NginX, Apache или множество других), обслуживающего статическую страницу с JavaScript, который просматривает URL-адрес и перенаправляет страницу на соответствующий порт.

Взяв изhttps://stackoverflow.com/questions/18022636/перенаправление-на-основе-url-javascriptчто-то вроде этого (не проверено):

<html>
<head><title>Redirect page</title></head>
<body>
<script type="text/javascript">

if (window.location.href== "http://files.bugsteins") {
   window.location.href = 'http://files.bugsteins:3000'; 
}

if (window.location.href== "http://chat.bugsteins") {
   window.location.href = 'http://chat.bugsteins:3001'; 
}

if (window.location.href== "http://devices.bugsteins") {
   window.location.href = 'http://devices.bugsteins:3002'; 
}

</script>
</body>
</html>

решение2

Самый быстрый способ — установить пакет dnsmasq в зависимости от дистрибутивов Linux (Arch/CentOS/RHEL/Ubuntu). Сохраните все записи в /etc/hosts на вашем DNS-сервере (использующем dnsmasq). Укажите все ваши рабочие станции/хосты Linux здесь.

Кроме того, обязательно настройте пересылку на внешний DNS-сервер Интернета для нелокальных запросов.

Для небольших сред, скажем, <100 машин, этого достаточно, так как он представляет собой минималистичный DNS-сервер.

решение3

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

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