如何让我的本地网络机器通过 URL 调用本地 Web 服务器?

如何让我的本地网络机器通过 URL 调用本地 Web 服务器?

我有四台计算机连接到一个交换机 - 未连接到互联网。

其中一台计算机(图中较大的那台)比其他计算机更强大,它运行的是 Ubuntu,拥有三个实时 Node.js Web 服务器,在不同的端口上运行着不同的应用程序。其他计算机运行的是 Windows。

我希望其他三台计算机通过调用 URL 来访问 Web 服务器,例如

  • 文件.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 端口添加一个 Web 监听器,以某种方式使用您的 Node.js 设置,或安装一个基本的 Web 服务器(Lighttpd、NginX、Apache 或其他),使用其中的 JavaScript 提供静态页面,查看 URL 并将页面重定向到适当的端口。

取自https://stackoverflow.com/questions/18022636/redirection-based-on-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

最快的方法是根据您的 Linux 发行版(Arch/CentOS/RHEL/Ubuntu)安装 dnsmasq 包。将所有条目保留在您的 DNS 服务器(使用 dnsmasq)的 /etc/hosts 中。将所有工作站/linux 主机指向此处。

此外,请确保将转发器设置为外部互联网 DNS 服务器以处理非本地请求。

对于小型环境(比如少于 100 台机器),这是一个足够好且简单的 DNS 服务器。

答案3

通常,这将由内部 DNS 服务器处理。如果您没有运行内部 DNS 服务器,则只需在 3 台客户端计算机上的本地主机文件中添加条目即可。

相关内容