为 zeroconf http 服务创建 VirtualHosts

为 zeroconf http 服务创建 VirtualHosts

我的计算机上运行着多个node.js应用程序,由于访问它们的唯一区别就是端口号,所以事情变得相当混乱。

所以我有了使用零配置来宣传它们。现在我可以在支持零配置的浏览器 (Safari) 中看到我的不同应用程序。

这是一个很好的开始,但我的团队中并不是每个人都可以使用 Safari,因此我希望他们无需端口号即可访问。

因此,我正在寻找一种基于 zeroconf 服务创建重定向或 VirtualHost 配置的方法。例如:如果我fileserver在机器上有一个名为 zeroconf 的服务some-server.local:3377,我希望可以通过 访问它http://fileserver.services.local,而无需端口号。

理想情况下,它不会重定向到http://some-server.local:3377,这就是我考虑VirtualHosts的原因。

这可行吗?

答案1

我对 zeroconf 不是很熟悉,但据我所知,您没有这样的配置文件 - 相反,每个服务都会自我宣传。如果这是正确的,那么我有几个建议。

第一种是使用mod_rewriteRewriteMap。 这RewriteMap将是一个查找正确记录并返回信息的程序。以下是一个例子:

RewriteEngine On
RewriteMap zeroconf:/path/to/program
RewriteRule ^/(.*) http://${zeroconf:$HTTP_HOST}/$1 [P,L]

您正在运行的程序/path/to/program必须以主机名作为参数(例如fileserver.services.local),并以返回服务器名称和端口some-server.local:3377。Mod_rewrite 随后会将该连接代理到该服务器和端口 - 如果您不想通过代理,请P从 RewriteRule 中删除。

另一种方法是使用RewriteMap由常规文本文件组成的文件,并运行 cron 作业来发现服务中的任何变化并每 X 分钟更新一次该文本文件。

编写程序将主机名映射到主机名:端口留给读者作为练习......

相关内容