我知道在 Windows azure 中,您可以将虚拟机添加到虚拟网络,但我没有看到将网站添加到网络的选项。
从 azure 网站保护对 VM (MongoDb) 的访问的推荐方法是什么?
我更喜欢将数据库放在某种防火墙后面,而不是让流量通过公共互联网。
编辑:虚拟机将托管 MongoDb,因此不能选择使用 Sql Azure 或其他 MSSql 解决方案。
我知道在 Windows azure 中,您可以将虚拟机添加到虚拟网络,但我没有看到将网站添加到网络的选项。
从 azure 网站保护对 VM (MongoDb) 的访问的推荐方法是什么?
我更喜欢将数据库放在某种防火墙后面,而不是让流量通过公共互联网。
编辑:虚拟机将托管 MongoDb,因此不能选择使用 Sql Azure 或其他 MSSql 解决方案。
如果您希望在虚拟机中使用网络和您自己的数据库,最好从保留网站开始。由于资源限制和其他限制,共享网站可能不是一个好主意。
如果您的数据库是 MongoDB,那么您有两个选择:
让您的 ASP.NET MVC 应用程序在虚拟机(Windows Server + IIS + 您的应用程序 - IaaS)中运行,并让 MongoDB 在其他虚拟机上运行。如果两台机器都在同一个 DC 中,则无需摆弄网络。
让 Azure ASP.NET MVC Web 角色 (PaaS) 和虚拟机运行 MongoDB (IaaS)。
在这两种情况下,您只需要配置一个连接字符串来连接 MongoDB,并且不需要额外的网络修改来使其工作,因为所有机器都在同一个 DC 内。
老问题,但微软 Azure 现在支持:http: //azure.microsoft.com/en-us/documentation/articles/web-sites-integrate-with-vnet/
编辑:首先,确保您已经设置了 VNET 并添加了网关(由于某种原因,添加网关需要很长时间......确保在继续之前让它完成)。
New-AzureVNetGateway -VNetName $vnetName -GatewayType DynamicRouting
网关也可以添加到门户中。
然后,您必须为此使用新的预览门户,浏览您的网络应用程序并向下滚动到网络部分并单击“虚拟网络”按钮。然后,在现有连接列表下找到您的 vnet。如果您没有看到它,那么您的网关设置不正确。
我不确定我是否理解您的问题,但我会尝试回答。一种方法是创建一个 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?
如果您解释您的确切要求,那么我们可以更好地指导您吗?
我仍然不清楚您的虚拟网络部分以及位于哪里?
您不能将 Windows Azure 网站添加到由其他 Windows Azure 部署组成的虚拟网络。
只要您的数据库位于同一个数据中心内,就不需要虚拟网络。如果您创建一个 Windows Azure 网站,您可以简单地与一个 Windows Azure SQL 数据库对话 - 只需通过门户设置一个,获取连接字符串和凭据,然后将其添加到您的应用程序中。事实上,当您从库(使用 SQL Server 与 MySQL)创建网站时,系统会要求您创建新数据库或选择现有数据库。
在门户中,您可以轻松创建自己的数据库(这是数据库即服务,只需几秒钟)。完成后,您可以启用防火墙规则以允许 Windows Azure 服务访问它。然后不要添加任何进一步的防火墙规则。此时,只有 Windows Azure 服务甚至可以找到您的数据库,并且只有知道凭据的服务才能连接到它。
正如@user728584 所建议的那样,您也可以在虚拟机中运行数据库,但是您必须通过公共 IP 地址访问它。如果您访问本地数据库,则会遇到同样的问题,因为无法将 vpn 客户端安装到 Azure 网站中。您可以使用托管在 Web 角色中的 Web 应用程序来执行此操作(您几乎可以做任何事情)。