如何将主机名转发到两个不同的网络服务器

如何将主机名转发到两个不同的网络服务器

在家里,我有两台不同的计算机运行 Web 服务器。一台是 Linux NAS,另一台是运行 Spiceworks 的 PC。

最近安装了 NAS 后,我希望能够从 访问它example1.example.com,同时仍然能够从 访问 Spiceworks example2.example.com。我不想使用端口转发来区分。

目前,由于我已经设置了端口转发,因此访问任一主机名都会转到 Spiceworks。

我的路由器没有虚拟主机功能,我无法将两个 Web 服务器合并到一台机器上,因为 Spiceworks 必须在 Windows 上运行。有什么方法可以正确地将请求定向到正确的 Web 服务器吗?

答案1

您基本上有 3 个选择,具体取决于您的路由器可以做什么以及您有哪些可用资源:

不同的端口

这是最简单的选项:一个端口(例如 80)转发到您的一个服务器,而另一个端口(例如 8080,一个常见的“替代”HTTP 端口)转发到另一个服务器。我知道您说您不想这样做,但这是最简单的选项,因此我在这里列出它以保证完整性。

第二个 IP

如果您可以为路由器分配第二个外部 IP 地址(并​​且您可以从 ISP 获取一个 IP 地址/您愿意从 ISP 支付费用),您可以将一个 DNS 条目指向一个 IP,端口转发到您的一台服务器,而另一个 DNS 条目指向第二个 IP,端口转发到另一台服务器。但是,许多路由器(尤其是现成的消费级路由器)不支持此功能;而且,许多 ISP 不提供额外 IP 选项,而提供这些选项的 ISP 经常收取高昂的费用(典型的例外是机架或 VPS 类型的托管提供商)。

反向代理

在 Linux 服务器上设置这个可能比在 Windows 服务器上设置更简单。基本上,您需要更改路由器以将所有流量转发到 Linux 服务器;这样,您的 Web 服务器将有一个虚拟主机用于example1.example.com,它将为其上的网站提供服务,另一个虚拟主机用于example2.example.com,它将反向代理到 Spiceworks 服务器作为其“上游”。具体如何实现取决于您使用的 Web 服务器,但在 Apache 和 nginx 中,这都相对简单。您还可以设置第三个框作为代理,根据主机名将流量定向到适当的服务器。

相关内容