11

我知道在 Windows azure 中,您可以将虚拟机添加到虚拟网络,但我没有看到将网站添加到网络的选项。

从 azure 网站保护对 VM (MongoDb) 的访问的推荐方法是什么?

我更喜欢将数据库放在某种防火墙后面,而不是让流量通过公共互联网。

编辑:虚拟机将托管 MongoDb,因此不能选择使用 Sql Azure 或其他 MSSql 解决方案。

4

4 回答 4

3

如果您希望在虚拟机中使用网络和您自己的数据库,最好从保留网站开始。由于资源限制和其他限制,共享网站可能不是一个好主意。

如果您的数据库是 MongoDB,那么您有两个选择:

  1. 让您的 ASP.NET MVC 应用程序在虚拟机(Windows Server + IIS + 您的应用程序 - IaaS)中运行,并让 MongoDB 在其他虚拟机上运行。如果两台机器都在同一个 DC 中,则无需摆弄网络。

  2. 让 Azure ASP.NET MVC Web 角色 (PaaS) 和虚拟机运行 MongoDB (IaaS)。

在这两种情况下,您只需要配置一个连接字符串来连接 MongoDB,并且不需要额外的网络修改来使其工作,因为所有机器都在同一个 DC 内。

于 2012-06-08T05:41:07.660 回答
3

老问题,但微软 Azure 现在支持:http: //azure.microsoft.com/en-us/documentation/articles/web-sites-integrate-with-vnet/

编辑:首先,确保您已经设置了 VNET 并添加了网关(由于某种原因,添加网关需要很长时间......确保在继续之前让它完成)。

New-AzureVNetGateway -VNetName $vnetName -GatewayType DynamicRouting

网关也可以添加到门户中。

然后,您必须为此使用新的预览门户,浏览您的网络应用程序并向下滚动到网络部分并单击“虚拟网络”按钮。然后,在现有连接列表下找到您的 vnet。如果您没有看到它,那么您的网关设置不正确。

于 2015-05-13T14:36:42.127 回答
1

我不确定我是否理解您的问题,但我会尝试回答。一种方法是创建一个 VM (IaaS) 来托管您的网站,例如 MVC 3 应用程序。(创建其中两个,然后在 Azure 中对它们进行负载平衡)。创建另一个 VM (IaaS),这将是您的数据库 VM。例如 SQL 服务器。来自您网站的连接字符串将允许您与数据库服务器通信

当用户访问您的站点时,他们将无法看到您的数据库,因为它没有公开公开,他们只会看到您为您的网站打开的端口 80 以供浏览。您已经有效地创建了一个安全的网站,人们可以通过端口 80 浏览该网站,而无需访问您的数据库层。

上面的模型对所有事情都使用 IaaS,你也可以做一个 PaaS/IaaS,你有一个在 Azure PaaS(Web 角色)中运行的网站,你有一个在 IaaS 机器上运行的数据库(例如 SQL Server)。同样,所有流量都将访问您面向公众的网站,该网站将有一个连接字符串指向您的 IaaS 实例,并且只有它才能与您的数据库实例进行通信。

有更多方法可以解决这个问题,通过提供 MySQL(今天宣布)的 WAWS(Windows Azure 网站)以及在 Azure 中使用 SQL DB?

如果您解释您的确切要求,那么我们可以更好地指导您吗?

我仍然不清楚您的虚拟网络部分以及位于哪里?

于 2012-06-08T04:53:49.337 回答
1

您不能将 Windows Azure 网站添加到由其他 Windows Azure 部署组成的虚拟网络。

只要您的数据库位于同一个数据中心内,就不需要虚拟网络。如果您创建一个 Windows Azure 网站,您可以简单地与一个 Windows Azure SQL 数据库对话 - 只需通过门户设置一个,获取连接字符串和凭据,然后将其添加到您的应用程序中。事实上,当您从库(使用 SQL Server 与 MySQL)创建网站时,系统会要求您创建新数据库或选择现有数据库。

在门户中,您可以轻松创建自己的数据库(这是数据库即服务,只需几秒钟)。完成后,您可以启用防火墙规则以允许 Windows Azure 服务访问它。然后不要添加任何进一步的防火墙规则。此时,只有 Windows Azure 服务甚至可以找到您的数据库,并且只有知道凭据的服务才能连接到它。

正如@user728584 所建议的那样,您也可以在虚拟机中运行数据库,但是您必须通过公共 IP 地址访问它。如果您访问本地数据库,则会遇到同样的问题,因为无法将 vpn 客户端安装到 Azure 网站中。您可以使用托管在 Web 角色中的 Web 应用程序来执行此操作(您几乎可以做任何事情)。

于 2012-06-08T05:08:34.007 回答