1

我正在尝试将我的应用程序从 Heroku 迁移到 Azure。事实证明,这个过程比宣传的更加繁琐。

在重置了很多方法之后,我最终决定在 Azure 上设置一个 Ubuntu VM(资源管理器 VM)并自己处理所有事情。我现在想在此 VM 上安装 IIS,设置 HTTP 端点并在其上配置网站。但我无法朝着这个目标前进,因为我看到的所有在线资源都希望我从Azure 管理控制台上的Endpoints选项卡开始。

但是对于我刚刚预配的虚拟机,Azure 管理控制台上没有 Endpoints 选项卡。

我现在猜测这是经典 Azure VM 的一个功能,而不是 v2,但与 Heroku 不同的是,文档过于分散,无法清楚地描述是什么。

那么我需要为我的 Linux Azure VM (v2) 采用什么类似的方法才能开始为 Web 流量提供服务?

关于我的应用程序的更多信息:它是一个 Django 应用程序,它使用一个名为waitress的纯 python WSGI 网络服务器,它的数据库是 postgresql。顺便说一句,我不能使用“Azure Web Apps”,因为这个功能不支持postgresql,我也不能安装我上面的所有包,requirements.txt因为其中一些需要编译器并且还没有Python Wheels(编译器在 Azure 应用服务中运行 Web 应用的计算机上不可用)。

4

2 回答 2

2

v1 和 v2 之间的一大区别是网络适配器和公共 IP 地址的概念。作为虚拟机的独立实体。应该坐在它们之间的是网络安全组

Azure v2 的强大功能和灵活性意味着可以轻松创建实际上根本没有防火墙的解决方案。

如果您查看您创建的资源组,您的网络安全组应该在那里。从那里您可以配置端点。(您还可以查看 VM 的“快速启动”页面,右下角应该有一个“安全组”链接(我是从内存中执行此操作的,因为我目前无法访问 Azure -所以细节可能会略有偏差)

预计到达时间

v2 安全组是存在于子网边界层或网卡层的软件防火墙。

子网边界 SG 可以保护后端虚拟机免受前端服务器的破坏。因此,数据库服务器仅通过特定端口进行通信,并且无法访问 Internet(例如)

连接到 Nic 的 SG 用于创建应用程序规则。例如,对于 HTTP,您将创建一个规则,允许目标为端口 80,允许从任何 IP 地址获取任何源端口。

于 2015-11-28T14:21:38.993 回答
1

那么我需要为我的 Linux Azure VM (v2) 采用什么类似的方法才能开始为 Web 流量提供服务?

“端点”的概念适用于经典部署模式(又名经典门户)。但在新的 Azure 门户中,资源管理 (arm) 部署模式优于经典门户/经典部署模式 (asm),您需要将“入站安全规则”添加到网络安全组 (NSG)。

您可以使用新的 Azure 门户 ( https://portal.azure.com )、PowerShell、Azure CLI 或 ARM 模板。我将介绍 Azure 门户和 Azure CLI。

方法 1:使用新的 azure 门户(https://portal.azure.com):

在此处输入图像描述 1. 导航到您在 Azure 中创建的 Linux VM 的网络安全组

在此处输入图像描述 2. 导航到您的入站安全规则设置

在此处输入图像描述 1. 添加新的入站安全规则以开始服务 Web 流量。(这是一个名为“web-rule”的示例规则,它允许来自客户端的流量从任何端口连接到端口 80)

方法 2:使用 Azure CLI:

  1. 打开 Azure CLI
  2. 登录到天蓝色:azure login
  3. 切换到资源管理器模式:azure config mode arm
  4. 运行azure network nsg create命令:

    azure network nsg rule create -g UbuntuRG -a UbuntuVM -n web-rule -c Allow -p Tcp -r Inbound -y 200 -f Internet -o * -e * -u 80

注意:以上方法假设您的资源组名称为“UbuntuRG”,您的虚拟机名称为“UbuntuVM”。

您可以找到更多信息:

如何使用 Azure 门户管理 NSG

如何使用 PowerShell 在资源管理器中创建 NSG

如何在 Azure CLI 中创建 NSG

如何使用模板创建 NSG

于 2016-06-04T20:49:25.343 回答