无法让 Azure 虚拟机为网站提供服务

Posted

技术标签:

【中文标题】无法让 Azure 虚拟机为网站提供服务【英文标题】:Can't get Azure Virtual Machine to serve websites 【发布时间】:2013-11-04 08:16:33 【问题描述】:

我刚刚设置了一个 Windows azure VM 并在其上安装了 IIS。

当我将桌面远程放到盒子上时,我可以看到默认的 IIS 网站正常,但我无法通过盒子的 IP 地址在网络上提供此服务。

我已经在windows防火墙上打开了80端口,还为80端口添加了一个端点。

我尝试在防火墙完全关闭的情况下访问它,但无济于事......

如果我还需要做任何其他事情来使其正常工作,我无法解决?

【问题讨论】:

澄清一下:当您尝试从 Web 访问您的 VM 时,您是通过 IP 地址而不是名称 (http://myservice.cloudapp.net) 进行的?另外:您是如何获得 IP 地址的:通过 RDP 时通过 ipconfig,还是通过 Azure 门户? 您好,我一直在尝试从门户中规定的公共虚拟IP(VIP)地址访问它,我也尝试过从DNS名称但也不起作用 您必须在 VM 上为端口 80 http 和 443 https 设置端点。对于新的 Azure 门户,您需要设置入站规则。这部分视频描述它youtu.be/5qqTS2oBHDw?t=361 【参考方案1】:

在注册表编辑器中关闭 TLS 1.3。 在 2021 年 3 月撰写本文时,这对我有用。

【讨论】:

【参考方案2】:

对于较新的 VM 和预配置设置 (2015+),您的设置可能使用名为 "Public IP" 的天蓝色资产。如果是这样,您可以在其中设置自定义 DNS 名称标签,在 "Configuration" 内。请注意,此名称将考虑创建 VM 时使用的任何类型的区域(例如 my-site.brazilsouth.cloudapp.azure.com)。

请记住,出于测试目的,使用随机指定给您的公共 IP 的值仍然足够。

【讨论】:

【参考方案3】:

解决这个问题的方法是进入 Azure 门户,浏览到“网络安全组”,选择 VM,然后创建入站规则以允许流量流向端口 80。

注意:还要确保在实际 VM 上添加并启用了到端口 80 的入站规则。

【讨论】:

如何进入“网络安全组”,是不是“虚拟网络”? 1.登录到您的 Microsoft Azure 门户。 2. 在位于屏幕左侧的主菜单上,找到“浏览 >”。 3. 在“过滤器”中输入“网络安全组”,然后按 Enter。 4. 选择您的资源。 5. 在“设置”中选择“入站安全规则”。 6. 创建规则。 非常感谢。这也为我解决了这个问题。【参考方案4】:

    将端口 80 (http) 和端口 443 (https) 的端点添加到 Azure 门户中的 VM(提示:这可以使用 powershell 或 Azure cli 自动执行)。

    远程桌面到计算机。打开 Windows 防火墙控制面板并允许到端口 80 (http) 和端口 443 (https) 的流量,或者直接将其关闭 ... 防火墙默认开启 (提示:也可以通过VM代理/powershell编写脚本)。

    转到 Azure 门户并找到运行 VM 的 VM(实际上是云服务)的 cloudapp.net 子域。尝试使用该域访问该站点。如果这不起作用,请尝试浏览到服务器(远程桌面)上的 http://localhost,以确保 IIS 正常工作并从那里进行故障排除。

    修改自定义域的 DNS 记录以使用 .cloudapp.net 域的 CNAME。如果您需要 A 记录,请确保使用云服务的公共 IP(只需 ping .cloudapp.net 域即可找到它或在 Azure 门户中查看)。

您可能想要查看 Azure 网站或 Azure 云服务(Web 角色)。这些更容易管理,也更便宜。它们仍然提供大部分功能。

【讨论】:

【参考方案5】:

您可能使用的是内部 IP 而不是外部 IP。

站点必须使用 IIS 绑定部分中的内部 IP 地址。但是,在您的 dns 中,您将需要使用外部 IP。这大概是因为“内部 IP”只是 Azure 用来将流量从外部网络映射到 VM 内部 azure 的虚拟 IP。

您应该会发现内部和外部 IP 在 VM 的桌面上都是可见的。

【讨论】:

【参考方案6】:

好吧,我删除了现有的虚拟机和云服务并重新启动 - 这次一切正常。

真烦人!我唯一注意到的是,在我的云服务与我的虚拟机同名之前 - 这次他们有不同的名称,所以这可能是导致问题的原因。

干杯

【讨论】:

【参考方案7】:

虚拟机实际上是通过云服务访问的(它们适合我)。 Azure 自动创建了一个云服务作为 VM 前端的扩展引擎/负载均衡器。我必须通过该云服务连接到网站,而不是直接连接到虚拟机。

【讨论】:

是的,我有一个云服务,当我在管理门户中查看它时,我的虚拟机就在它下面 - 当我尝试访问云服务的 url (rtcservicestest.cloudapp.net) 时与 VM 的 dns 相同,我得到一个无法连接的错误。 我唯一的其他设置是公共和私有端口为 443 的端点(在您的情况下,您似乎说过您使用的是 80)。您可以在管理控制台中针对 VM 的端点下看到这一点吗? 否则,唯一其他更基本的事情是 rtcservicestest 指向的 IP 绝对正确(没有 DNS/更新/TTL 问题)以及您如何在 VM 上的 IIS 中设置绑定?自然地在本地访问它的行为与远程访问有些不同,尤其是当它连接到 localhost 而不是 rtcservicestest.cloudapp.net 时。 嗨,是的,有趣的是,我添加了端口 443 作为 https 的端点。我检查了 IIS 中的绑定,默认网站绑定了 80 端口。我可以使用内部 IP 地址在本地访问它,但不能使用 DNS 或公共虚拟 IP (VIP) 地址。我假设我在以某种方式将 VM 链接到云服务时错过了一些设置,但我终生无法找出它是什么.... 如果我只是在乱七八糟的东西 - 这几乎是直接开箱即用的!啊,好吧,我会从头开始重新开始,同时轻轻地谈论我对微软的爱,以及他们多年来在我的呼吸下让我的生活变得多么轻松,同时来回摇摆;-)

以上是关于无法让 Azure 虚拟机为网站提供服务的主要内容,如果未能解决你的问题,请参考以下文章

如何在Windows Azure虚拟机上配置外网能访问的FTP服务器

微软azure云计算在门户中创建 Windows 虚拟机部署web网站

Azure备份服务-虚拟机备份

Azure 网站如何访问 Azure 托管的虚拟机?

Azure Service Fabric部署 - 该地区不提供虚拟机来为您的请求提供服务

如何让虚拟机与物理机互相ping通