Azure 云服务和网站通信锁定

标签 azure

我有一个 Azure 云服务(服务器),我在其中托管 Redis 数据库。我还有一个托管在 azure 网站上的网站。我希望该网站能够在端口 6379 上与 Redis DB 进行通信。我知道我可以在我的服务器上为该端口配置公共(public)端点,但这会向整个 Internet 打开它。我希望它仅针对 azure 网站打开(或者更好,仅针对我的网站)。我该怎么做?

最佳答案

Windows Azure 网站处于与您的云服务分离的隔离气泡中,并且无法弥补这一差距。理想情况下,您可以通过虚拟网络将网站计算机连接到其他 Azure 服务来完成此操作,但是 this FAQ确认您现在无法执行此操作:

Can I use Windows Azure websites with Virtual Network?

No. We do not support websites with virtual networks.

甚至不应该考虑通过互联网打开 Redis,因为它不具备您希望开箱即用地公开开放其端口的那种安全性,因为它应该与你的应用程序,所以你真的不想这样做。不要介意增加的网络开销,无论如何,这都会影响您通过利用 Redis 之类的东西所期望获得的性能。

我相信,根据您当前的配置,最好的选择是添加属于同一 Azure 云服务一部分的 Web 角色,并从中运行基于 Web 的应用程序,以便它可以与辅助角色进行通信。只需要一点点配置即可实现此目的(即将 InternalEndpoint 添加到 Redis Worker Role)。虽然我意识到 Web 角色无法提供像网站那样顺畅的开发模型,但您必须为工作选择正确的工具。

如果您想在虚拟机上设置 Redis,而不是直接将其绑定(bind)到云服务,则另一个选择是您可以设置虚拟网络,将 Redis 虚拟机放在虚拟网络上,然后配置云服务,以便它是同一亲和性组的一部分并添加 NetworkConfiguration/VirtualNetworkSite配置部分添加到云服务的 .cscfg。

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

关于Azure 云服务和网站通信锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21440058/

相关文章:

azure - 将资源移动到另一个订阅会影响服务使用的访问 key 吗?

Azure 通过 JAVA 中的暂停恢复功能分块下载大块

azure - 在 Azure 上创建新 VM 实例时,为什么 D1V2 实例不显示?

azure - Docker微服务架构——不同容器之间的通信

azure - 无法访问azure应用程序服务中的keycloak控制台 - 脚本ssl错误

database - 如何在数据迁移助手工具中提供数据库名称

azure - 使用 VirtualPathProvider 将主题放入 Azure CDN

Azure B2C 自定义策略 - api.localaccountsignup - 仅自动翻译某些字段

azure - 从 json 请求正文中获取值并将其存储在 Azure API 管理中的变量中

exception - Azure表存储错误: "Unexpected response code for operation : 99"