不确定如何在 Windows Azure 上设置两个虚拟机以匹配我想要的架构

不确定如何在 Windows Azure 上设置两个虚拟机以匹配我想要的架构

我正在尝试在 Windows Azure 上设置几个 Win2008 Server 虚拟机(使用 VM 预览功能),但我不确定如何正确设置我想要的“架构”。以下是我想要实现的目标 -

我想要一台仅作为运行 MongoDB 的数据库服务器的服务器(我知道他们说 Linux 更好,但目前由于各种原因我只能使用 Windows)。

我想要第二个服务器作为我的网络服务器。此网络应用程序将通过 node.js 运行。

数据库服务器应该只接受来自 Web 服务器的连接,并且只有在握手成功后才可以接受。

我可以通过在数据库服务器上运行第二个 node.js 服务器来解决握手问题,该服务器基本上充当我的数据库的 Rest API,同时验证握手等。我遇到的问题是如何让数据库服务器仅接受来自我的 Web 服务器的连接?

如果我们假设我确实为数据库服务器构建了第二个 node.js 应用程序,考虑到我可以构建节点应用程序以仅接受来自特定 IP 地址的连接,是否还需要此网络配置? 或者在其他地方维护此规则是否仍然有意义?

我对网络一无所知,所以现在这些都有点超出我的理解范围。如果有人能提供任何帮助、指导、链接等,我将不胜感激 :)

答案1

如果您将两个虚拟机放在同一个云服务中,则虚拟机可以通过虚拟机上的任何开放端口相互通信。因此,假设您的 MongoDB 服务器在 27017 上运行,并且 MongoDB 虚拟机允许 27017 上的 tcp 流量,则您的 Web VM 可以与 MongoDB 通信。

现在,转到端点:只需为端口 80 和 443 创建端点,并且仅在 Web 虚拟机上。无需创建负载平衡端点,因为您永远不希望来自外部世界的流量到达您的 MongoDB VM。此时,仅有的外部可访问端口将是您的端点中定义的端口(在本例中为 80 和 443)。并且,只要它们不是负载平衡端点,流量仅定向到单个虚拟机。

如需深入了解如何设置虚拟机,请阅读 Michael Washam 的博客文章,这里, 在里面虚拟机网络部分。

答案2

在我看来,实现此目的的最简单方法是使用 Windows 防火墙并确保其已block all inbound connections that don't match a rule启用默认设置...然后创建一条规则以允许来自数据库服务器 IP 的所需流量。确保它是其中唯一的规则,然后您就可以开始了。或者,已经完成了您要做的事情。您可能会发现这对于完整功能来说有点过于严格,允许从某些其他机器进行远程管理或监控可能也不是一个糟糕的想法,但这是另一个问题。

事实上,SuperUser 上有一个关于这个主题(针对 Win7)的精彩问答,它并不糟糕,并且有屏幕截图。界面在 Win7 和 Server 2008 中是相同的,因此可能值得一看,只是为了截图。或者如何使用 IPSec答案甚至。

相关内容