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

我有四台电脑连接到一台交换机 – 没有连接到互联网。

其中一台计算机(图中的大型计算机)比其他计算机更强大,正在运行Ubuntu,并在不同的端口上安装了三台带有不同应用程序的现场Node.js Web服务器。 其他电脑正在运行Windows。

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

  • files.bugsteins – > 192.168.0.5:3000
  • chat.bugsteins – > 192.168.0.5:3001
  • devices.bugsteins – > 192.168.0.5:3002

什么是最好的(快速build立时间优先)的方式来实现这一目标?

到目前为止,我已经尝试在服务器上绑定Bind9,并在三台客户端机器上分配静态IP和手动硬编码的DNS,但是它并不工作,而且在我工作的时候,我想我会发布这个问题,以防有人有更好的方法。

网络架构

什么是最好的(快速build立时间优先)的方式来实现这一目标?

不是BIND。

编辑每个桌面上的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或者其他堆栈)来提供静态页面,并将页面redirect到适当的端口。

采取从https://stackoverflow.com/questions/18022636/redirection-based-on-url-javascript像这样(未经testing):

 <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> 

最快的将安装dnsmasq软件包取决于你的Linux发行版(Arch / CentOS / RHEL / Ubuntu)。 保留DNS服务器上的/ etc / hosts中的所有条目(使用dnsmasq)。 指出你所有的工作站/ Linux主机在这里。

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

对于小型环境来说,<100机器,这是足够好,简约的DNS服务器。

通常情况下,这将使用内部DNS服务器进行处理。 如果您没有运行一个,则可以将条目添加到每个3台客户端计算机上的本地主机文件中。