Azure云服务和网站通信锁定

Azure云服务和网站通信锁定,azure,Azure,我有一个azure云服务(服务器),在那里我托管一个Redis数据库。我还有一个网站托管在azure网站上。我希望该网站能够与6379端口上的Redis DB对话。我知道我可以在我的服务器上为该端口配置一个公共端点,但这将为整个Internet打开它。我希望它只为azure网站打开(或者更好,只为我的网站打开)。如何做到这一点?Windows Azure网站与您的云服务处于隔离状态,无法弥合这一差距。理想情况下,您可以通过虚拟网络将网站计算机连接到其他Azure服务来实现这一点,但确认您现在无法

我有一个azure云服务(服务器),在那里我托管一个Redis数据库。我还有一个网站托管在azure网站上。我希望该网站能够与6379端口上的Redis DB对话。我知道我可以在我的服务器上为该端口配置一个公共端点,但这将为整个Internet打开它。我希望它只为azure网站打开(或者更好,只为我的网站打开)。如何做到这一点?

Windows Azure网站与您的云服务处于隔离状态,无法弥合这一差距。理想情况下,您可以通过虚拟网络将网站计算机连接到其他Azure服务来实现这一点,但确认您现在无法做到:

我可以将Windows Azure网站与虚拟网络一起使用吗

不支持。我们不支持带有虚拟网络的网站

在互联网上开放Redis甚至不应该被认为是因为它没有你想要的那种开箱即用的安全性公开开放它的端口,因为它意味着与你的应用程序位于同一位置,所以你真的不想这样做。不管怎样,增加的网络开销都不会影响您通过利用Redis之类的工具所期望获得的性能

我相信,根据您当前的配置,您最好添加一个属于同一Azure云服务的Web角色,然后运行基于Web的应用程序,这样它就可以与工作角色通信。它只需要一点配置就可以实现这一点(即向Redis Worker角色添加一个)。虽然我意识到Web角色不像Web站点那样提供无摩擦的开发模式,但您必须为该工作选择正确的工具

另一种选择是,如果您想在虚拟机上设置Redis而不是直接将其绑定到云服务,则可以设置虚拟网络,将Redis虚拟机置于虚拟网络上,然后配置云服务,使其成为同一关联组的一部分,并将配置部分添加到云服务的.cscfg


哪种方法更有意义完全取决于您如何利用您的Redis实例,但后一种方法的主要好处是,不会在每次部署云服务时重新创建Redis实例,因此,其中的任何数据都将在部署之间保持可用。另一个好处是,如果您希望跨多个云服务构建和利用Redis群集,这将使您能够做到这一点。

谢谢!我想我需要更多地了解Azure概念。现在我有一个虚拟机上的Redis。但它是作为云服务托管的(根据我的azure门户网站),服务器大小为M。你的意思是我可以用另一种方式运行这个VM吗?我在这里找到了一个很好的解释:如果你现在这样运行它,你可以让它在WorkerRole中运行,并对此感到满意,但是,您需要重新定义该工作者角色,使其成为与VPN相同的关联组的一部分,并向其添加相同的NetworkConfiguration/VirtualNetworkSite部分。否则,你可以做一个直接的虚拟机,它甚至可以让你选择运行Linux版本的Redis,如果这对你的团队更有吸引力的话。我现在有一个微软的Redis fork。你知道有没有任何.net Redis客户端可以用来对抗Linux Redis服务器吗?我也是,我想我会把它作为参考:好的,任何Redis客户端impl都应该用于任何Redis服务器impl。版本才是最重要的,只要您使用兼容的客户端和服务器版本,就应该是gtg。