运行IIS与单一的公共IP如何处理传入的通信?

在我们公司,目前我们有三个独立的服务器。 这三个服务器中的每一个具有相同的公共IP地址,并且基本上驻留在不同子网下的相同networking上。

我们试图想出一种允许以相对容易的方式访问所有三台机器的方法。 有任何想法吗?

你可以在不同的端口上运行它们,或者你可以在它们前面放置一个反向代理。

使用不同的端口是最简单的,但是用户需要知道端口以及名称才能访问正确的服务器。

反向代理规则根据请求的主机名决定要提取哪个内部IIS服务器。

我将在这里做一些假设。 你声明“ 我们有三个独立的服务器,当前的IIS,这三个服务器都有相同的公共IP地址 ”,我认为这意味着他们只是面向非常特定的服务。 他们可能允许外部港口80,433,可能还有其他几个。 如果是这样的话,我不会设置一个通过外部地址远程连接的方法。 由于该地址公开可用于Web服务,所以可以扫描它以find您的“访问门”,而不pipe可能采取什么forms。

选项1:最简单的解决scheme是设置4个公共地址:

1提供Web服务的负载平衡的公共地址。 3公共地址被redirect到每个服务器上的端口以进行连接pipe理。

为pipe理地址设置NATredirect是一个简单的防火墙configuration。 看起来像这样

  1. 公用地址1>服务器1的专用地址
  2. 公用地址2>服务器2的专用地址
  3. 公用地址3>服务器3的专用地址

可选地,您可以有一个公共地址来提供服务和一个公共地址进行pipe理,但是每个服务器都有一个不同的入站端口。 假设你有端口1000,1001和1002.如果你的pipe理服务是SSH,端口22,那么它将如下所示。

  1. 公共地址,端口1000>服务器1,端口22的专用地址
  2. 公共地址,端口1001>服务器2,端口22的专用地址
  3. 公共地址,端口1002>服务器3,端口22的专用地址

选项2:安装pipe理服务器或软件,然后使用它们在内部连接到每个IIS服务器。

所以,你将有一个公共地址为您的Web服务和一个公共地址来pipe理服务器。 第一个地址负载平衡到您的IIS服务器,第二个地址到您的pipe理服务器,可能是远程桌面服务器,SSH服务器或服务器,而不是提供VNC连接到ISS服务器。 他们有很多的第三方选项,可以免费和付费,可以完成第二个选项。

选项3:设置VPN(虚拟专用networking)

如果您的防火墙能够充当VPN集中器,那么您可以设置VPN服务。 这将允许您使用VPN进行远程连接。 一旦连接,您就可以使用其内部IP地址连接到每个IIS服务。

如果您想通过相同的外部IP地址访问每个IP地址,则必须使用不同的端口并使用基于端口的NAT。

如果您可以使用不同的主机名/域名,则可以设置一个反向代理 ,根据主机名将请求交给不同的服务器。 例如server1.example.com,server2.example.com等

要做到这一点,你需要有第四个框或select一个现有的服务器来完成这项任务。

设置NATing指向该服务器(可能仅用于端口80)。

select一个代理包。 你可以使用像Squid , Apache , Varnish或Apachestream量服务器 (其中一些也可以caching)。

configuration代理以转发对server1.example.com的请求以转到server1的内部IP或主机名,对于服务器2和3则转到相同。

有一件事要注意的是,如果代理服务器正在其中一个Web服务器上运行,代理服务器正在侦听的端口不能与Web服务器相同。

因此,要么将代理configuration为在端口8080上,然后configurationNAT规则以将端口80上的请求转发到端口8080,要么将所有Web服务器configuration为在该端口上运行。 我推荐第一个选项。 这样你的内部访问是整洁的,并绕过代理。

希望这一切都有道理。 如果需要,可以进一步澄清。

我个人会做一个反向代理,但如果你想避免这种情况,那么其他build议的替代scheme是在不同的端口上运行每个服务器,并支付像No-IP这样的服务,该服务将主机从端口80redirect到另一个端口。

基本上,host1.domain.com可以指向你的IP:81,用户不会知道有什么区别。

它的工作,但我仍然build议一个反向代理作为“适当的”做事的方式。

我build议使用一个反向代理,在你的情况应用程序请求路由 ,从微软免费的IIS插件。

你select你的三台服务器中的一台,并给它公共IP。 安装并设置ARR以处理所有请求,并将其转发到三个端点中的任何一个。

这是一个硬件和软件方面的免费解决scheme,但您需要了解ARR。 我build议在虚拟机中设置三个testing服务器并使用它。