如何在 Azure 虚拟机中设置端点

How to set up endpoints within a Azure Virtual Machine

我正在尝试在 Azure VM 上设置 MailTrain (a newsletter application)。我用虚拟机、虚拟网络、网络接口、网络安全组、public ip 地址和私有 DNS 区域创建了一个资源组。

MailTrain 需要三个 URL 端点,它们都指向同一个 IP 地址。出于测试目的,我想创建所有指向 VM 的内部端点。我尝试了 DNS 区域中的 DNS 条目,但它没有像我预期的那样工作。

私有 DNS 区域的名称等于虚拟机 public IP 地址的 DNS 名称。专用 DNS 区域和 VM link 与虚拟网络 link 连接,并启用了自动注册。虚拟网络包含默认子网。我为指向 VM 内部 IP 地址的“列表”创建了一个 A 条目,为指向 public IP 地址的 DNS 名称的“sbox”创建了一个 CNAME 条目。端口 80 和 443 的入站规则已添加到网络安全组。

控制台在 运行 安装脚本时向我显示以下消息:

Domain: lists.xxx.cloudapp.azure.com
Type:   None
Detail: DNS problem: NXDOMAIN looking up A for
lists.xxx.cloudapp.azure.com - check that
a DNS record exists for this domain

Domain: sbox.xxx.cloudapp.azure.com
Type:   None
Detail: DNS problem: NXDOMAIN looking up A for
sbox.xxx.cloudapp.azure.com - check that a
DNS record exists for this domain

Domain: xxx.cloudapp.azure.com
Type:   unauthorized
Detail: Invalid response from
https://xxx.cloudapp.azure.com/.well-known/acme->challenge/VIjYMd-Uic_T2lQBl4vSyy9Va46-yVxmTA8SSE3f8J8
[xxx.xxx.xxx]: "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML
2.0//EN\">\n<html><head>\n<title>503 Service
Unavailable</title>\n</head><body>\n<h1>Service"

接着 quick start,您只需在 public 域 DNS 区域中创建三个 DNS 记录。

请注意还有public DNS and private DNS in Azure. In this case, I assume you have created a private DNS zone for internal endpoints. To resolve the records of a private DNS zone from your virtual network, you must link the virtual network with the zone。此外,您还可以在虚拟网络 link 上 启用自动注册 。如果在虚拟网络 link 上启用自动注册,则该虚拟网络上的虚拟机的 DNS 记录会在专用区域中注册。或者,您可以手动创建一个 A 记录以映射到区域中 VM 的专用 IP 地址,并创建其他 CNAME 记录以映射到其他内部端点。

作为最佳做法,请勿将 .local 域用于您的私有 DNS 区域。并非所有操作系统都支持此功能。

此外,您需要在与 Azure VM 子网或 NIC 关联的网络安全组中添加入站端口 80443

更新

对于内部测试,您可以使用私有 DNS 区域,因为私有区域中的 DNS 记录只能在虚拟网络中解析,无法通过 Internet 解析,您可以 select local installation 在这种情况下。

例如,我创建了一个名为 contoso.com

的私有 DNS 区域

本地安装后,您可以通过受信任端点http://localhost:3000访问该网站,然后您应该访问 VNet 中的其他端点,而不是访问外部。

但是,如果您想将其用于 public 访问,您可以 select 安装 public website secured by SSL。在这种情况下,您需要购买一个域并将相关的 DNS 记录添加到相应 DNS 提供商的 DNS 区域中。 Azure DNS 区域支持在 Azure 中托管您的 public 域区域。