我正在尝试将我的应用从Heroku迁移到Azure。这个过程变得比宣传更加苦差事。
重置了不少方法后,我终于决定在Azure上设置Ubuntu VM(资源管理器VM)并自行处理所有内容。我现在想在这个VM上安装IIS,设置HTTP端点并在其上配置一个网站。但是我无法继续实现这一目标,因为我所看到的所有在线资源都希望我从Azure管理控制台上的端点标签开始。
但Azure管理控制台上没有我刚配置的虚拟机的端点选项卡。
我现在猜测这是经典Azure虚拟机的一个功能,而不是v2,但与Heroku相比,文档过于分散,无法清楚地描述其中的内容。
那么我需要为Linux Azure VM(v2)采取的可比方法是什么,以便开始提供网络流量?
关于我的应用程序的更多信息:它是一个Django应用程序,它使用名为waitress的纯python WSGI网络服务器,它的db是postgresql。顺便说一句,我无法使用Azure Web Apps'因为这个功能不支持postgresql,也不能安装我requirements.txt
上的所有包,因为其中一些需要编译器而且还没有Python Wheels(编译器)在Azure App Service中运行Web应用程序的计算机上不可用。
答案 0 :(得分:2)
v1和v2之间的一个重大区别是网络适配器和公共IP地址的概念。作为VM的单独实体。 应位于它们之间的是Network Security Group
Azure v2的强大功能和灵活性意味着可以轻松创建实际上根本没有防火墙的解决方案。
如果您查看已创建网络安全组的资源组,则应该在那里。从那里你可以配置端点。 (您也可以查看虚拟机的“快速启动”页面,右下方应该有一个“安全组”链接(我正在从内存中执行此操作,因为此刻我无法访问Azure)所以细节可能稍微偏离)
ETA
v2安全组是位于子网边界层或网卡层的软件防火墙。
子网边界SG可以保护后端VM免受前端服务器的攻击。因此,数据库服务器仅通过特定端口进行通信,并且无法访问Internet(例如)
附加到Nic的SG是在那里创建应用程序规则。例如,对于HTTP,您将创建一个允许目标为端口80的规则,允许从任何IP地址和任何源端口获取该目标。
答案 1 :(得分:1)
那么我需要为Linux Azure VM(v2)采取的可比方法是什么,以便开始提供网络流量?
"端点"的概念适用于经典部署模式(又名经典门户网站)。但在新的azure门户中,资源管理(arm)部署模式优于传统门户/经典部署模式(asm),您需要添加"入站安全规则"到您的网络安全组(NSG)。
您可以使用新的Azure门户(https://portal.azure.com),PowerShell,Azure CLI或ARM模板。我将介绍Azure Portal和Azure CLI。
方法1:使用新的天蓝色门户网站(https://portal.azure.com):
1.导航到您在Azure中创建的Linux VM的网络安全组
1.添加新的入站安全规则以开始提供Web流量。 (这是一个名为" web-rule"的示例规则,允许从任何端口连接到端口80的客户端的流量)
方法2:使用Azure CLI:
azure login
azure config mode arm
运行 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"。
您可以找到更多信息:
How to manage NSGs using the Azure portal
How to create NSGs in Resource Manager by using PowerShell