Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
应用服务环境是托管Windows和 Linux 容器、Web 应用、API 应用、逻辑应用和函数应用的Azure 应用服务的单租户部署。 当您安装 应用服务环境 时,需选择一个 Azure 虚拟网络作为其部署的环境。 所有入站和出站应用程序流量都在指定的virtual network内。 您将部署到虚拟网络中的一个子网,并且该子网中不能再部署任何其他内容。
子网要求
以下是您的 应用服务环境 所在子网的最低要求集。
- 子网必须委托给
Microsoft.Web/hostingEnvironments。 - 子网必须为空。
- 子网的
addressPrefix属性必须设置为字符串而不是数组格式。
子网的大小可能会影响应用服务环境中的应用服务计划实例的缩放限制。 对于生产规模,我们建议为子网提供 /24 地址空间(256 个地址)。 如果计划在 应用服务环境 中缩放接近 200 个实例的最大容量,并计划频繁进行向上/向下缩放操作,我们建议为子网提供一个 /23 地址空间(512 个地址)。
注意事项
现在可以将 应用服务环境 移到新子网。 若要将应用服务环境移到新子网,请创建支持票证。 需要支持票证,因为在更改子网之前,需要验证并正确配置先决条件和配置,以确保成功迁移。 无法正确迁移可能会导致停机和连接问题。
如果使用的子网较小,请注意以下限制:
- 任何特定的子网都有五个保留用于管理目的的地址。 除了管理地址,应用服务环境动态缩放支持基础结构,并根据配置和负载使用 7 到 27 个地址。 可以将剩余的地址用于 App Service 计划中的实例。 子网的最小大小是
/27地址空间(32 个地址)。 - 对于在 应用服务环境 中使用的任何应用服务计划的操作系统/ SKU 组合(例如 I1v2 Windows),每有 20 个活动实例,将创建一个备用实例。 备用实例也需要 IP 地址。
- 在应用服务环境向上/向下缩放应用服务计划时,应用服务计划使用的 IP 地址量在缩放操作完成时会暂时翻倍。 在取消预配现有实例之前,新实例需要完全正常运行。
- 平台升级需要使用免费 IP 地址,以确保可以在不中断出站流量的情况下进行升级。
- 在纵向扩展、缩减或完成操作后,可能需要一小段时间才能释放 IP 地址。 在极少数情况下,此操作可能长达 12 小时。
- 如果子网中的地址已用尽,您可能无法在 应用服务环境 中对应用服务计划进行横向扩展。 另一种可能性是,如果Microsoft无法缩放支持基础结构,则可以在密集的流量负载期间遇到更高的延迟。
注意事项
Windows容器为每个应用服务计划实例使用额外的 IP 地址,并且需要相应地调整子网大小。 例如,如果应用服务环境有2个Windows容器应用服务计划,每个计划有25个实例,并且每个实例运行5个应用,则需要300个IP地址和额外的地址来支持水平(进出)扩展。
示例计算:
对于每个应用服务计划实例,你需要:5个Windows容器应用 = 5个IP地址,每个应用服务计划实例需要1个IP地址,所以5 + 1 = 6个IP地址。
对于 25 个实例:对于每个 App Service 计划,6 x 25 = 150 个 IP 地址
由于有 2 个 App Service 计划,2 x 150 = 300 个 IP 地址。
地址
创建时,应用服务环境 具有以下网络信息:
| 地址类型 | 描述 |
|---|---|
| 应用服务环境虚拟网络 | 部署到虚拟网络。 |
| 应用服务环境子网 | 部署到的子网。 |
| 域后缀 | 应用使用的默认域后缀。 |
| 自定义域后缀 | (可选)应用使用的自定义域后缀。 |
| 虚拟 IP (VIP) | 使用的 VIP 类型。 两个可能的值为“内部”和“外部”。 |
| 入站地址 | 入站地址是访问应用的地址。 如果您有内部 VIP,它是您 应用服务环境 子网中的一个地址。 如果该地址是外部地址,则它是面向公众的地址。 |
| 工作出站地址 | 在向 Internet 发出出站调用时,应用使用这个(或这些)地址。 |
| 平台出站地址 | 在向 Internet 发出出站调用时,平台使用这个地址。 例如,如果未使用专用终结点,则可以从 密钥保管库 获取自定义域后缀的证书。 |
可以在门户的“IP 地址”部分找到详细信息,如以下屏幕截图所示:
当你在 应用服务环境 中扩展应用服务计划时,可以从子网中使用更多的地址。 使用的地址数因你拥有的App Service计划实例数以及有多少流量而异。 应用服务环境中的应用在子网中没有专用地址。 应用在子网中使用的特定地址会随时间而改变。
自带入站地址
可以将您自己的入站地址带到“应用服务环境”。 如果使用内部 VIP 创建应用服务环境,可以在子网中指定静态 IP 地址。 如果使用外部 VIP 创建 应用服务环境,可以通过指定公共 IP 地址的资源 ID 来使用自己的 Azure 公共 IP 地址。 以下是自带入站地址的限制:
- 对于具有外部 VIP 的应用服务环境,Azure公共 IP 地址资源必须与应用服务环境位于同一订阅中。
- 创建应用服务环境后,无法更改入站地址。
ILB 应用服务环境入站流量限制
对于具有内部 VIP 的应用服务环境,如果源 IP 地址位于用于应用服务环境前端的基础结构地址范围内,则到前端的入站流量可能会被丢弃。
不要在172.31.192.0/25地址空间中使用源 IP 地址连接到 ILB 应用服务环境。
端口和网络限制
若要使应用接收流量,请确保入站网络安全组(NSG)规则允许应用服务环境子网接收来自所需端口的流量。 除了要接收流量的任何端口外,还应确保Azure 负载均衡器能够连接到端口 80 上的子网。 此端口用于内部虚拟机的健康状况检查。 您仍然可以控制从虚拟网络到子网的端口 80 的流量。
注意事项
由于 HTTP 连接持久性,对 NSG 规则的更改最长可能需要 14 天才能生效。 如果进行更改会阻止平台/管理流量,最长可能需要 14 天才能看到效果。
建议配置以下入站 NSG 规则:
| 源/目标端口 | 方向 | 源 | 目标 | 目的 |
|---|---|---|---|---|
| * / 80,443 | 入站 | VirtualNetwork | 应用服务环境 子网范围 | 允许应用流量和内部健康检测 ping 流量 |
运行应用服务环境的最低要求是:
| 源/目标端口 | 方向 | 源 | 目标 | 目的 |
|---|---|---|---|---|
| * / 80 | 入站 | Azure 负载均衡器 (AzureLoadBalancer) | 应用服务环境子网范围 | 允许内部健康检查 ping 流量 |
如果使用最低要求规则,可能需要为应用程序流量使用一个或多个规则。 如果使用任何部署或调试选项,还必须允许此流量流向应用服务环境子网。 这些规则的源可以是virtual network,也可以是一个或多个特定的客户端 IP 或 IP 范围。 目标始终是 应用服务环境 子网范围。
端口 80 上的内部健康检查 ping 流量在负载均衡器与内部服务器之间被隔离。 外部流量不能到达运行状况 ping 终结点。
普通应用访问端口入站如下:
| 使用 | 端口 |
|---|---|
| HTTP/HTTPS | 80、443 |
| FTP/FTPS | 21, 990, 10001-10020 |
| Visual Studio远程调试 | 4022、4024、4026 |
| Web 部署服务 | 8172 |
注意事项
对于 FTP 访问,即使想要禁止端口 21 上的标准 FTP,仍需允许从 LoadBalancer 到端口 21 上的 应用服务环境 子网范围的流量,因为这专门用于 ftp 服务的内部运行状况 ping 流量。
网络路由
你可以不受限制地设置路由表。 可以通过隧道传输所有来自应用服务环境的出站应用流量到出口防火墙设备,例如 Azure 防火墙。 在这种情况下,你唯一需要担心的是应用程序依赖项。
应用程序依赖项包括应用在运行时所需的终结点。 除了应用调用的 API 和服务,依赖项还可能包括衍生终端,例如证书吊销列表(CRL)检查终端和身份/认证终端,比如 Microsoft Entra ID。 如果使用 App Service 中的连续部署,您可能还需要根据类型和语言允许终结点。 具体而言,对于 Linux 持续部署,需要允许 oryx-cdn.microsoft.io:443。
可以将 Web 应用程序防火墙设备(如 Azure 应用程序网关)置于入站流量的前面。 这样做可以公开该应用服务环境上的特定应用。
应用程序会将其中一个默认出站地址用于流向公共终结点的出口流量。 如果要在应用服务环境上自定义应用程序的出站地址,可以将 NAT 网关添加到子网。
注意事项
应用服务环境 v3 支持出站 SMTP 连接(端口 25)。 可支持性由订阅中部署虚拟网络的设置来决定。 针对在 2022年8月1日之前创建的虚拟网络和子网, 2022年8月,您需要启动对虚拟网络或其子网的临时配置更改,以便从订阅中同步设置。 例如,可以添加临时子网、暂时关联/取消关联 NSG 或临时配置服务终结点。 有关详细信息和故障排除,请参阅 在 Azure 中排查出站 SMTP 连接问题。
出站网络分段
出站网络分段允许将应用加入备用子网,以控制出站流量的路由方式。 默认情况下,来自应用服务环境的所有出站流量都源自托管应用服务环境的子网。
启用出站网络分段
创建应用服务环境时,必须启用出站网络分段。 无法在现有App Service环境中启用此功能。 无法通过门户界面支持启用此群集设置或加入备用子网。
若要启用该功能,请在使用Azure 资源管理器或Bicep模板创建应用服务环境时配置 MultipleSubnetJoinEnabled 群集设置:
"clusterSettings": [
{
"name": "MultipleSubnetJoinEnabled",
"value": "true"
}
]
有关配置集群设置的指导,请参阅 App Service 环境的自定义配置设置。
将应用加入备用子网
备用子网必须为空,并委托给 Microsoft.Web/serverFarms。 确保为 应用启用应用程序流量路由 ,以便通过备用子网路由所有流量。
若要将应用加入备用子网,请使用以下Azure CLI命令:
az webapp vnet-integration add --resource-group <APP-RESOURCE-GROUP> --name <APP-NAME> --vnet <VNET-NAME> --subnet <ALTERNATE-SUBNET-NAME>
如果备用子网位于与应用不同的资源组中,请运行 az webapp vnet-integration add -h 以了解如何指定资源 ID。
若要更改应用的备用子网,请先删除现有集成,然后添加新的子网。
若要删除应用的备用子网联接,请使用 Azure CLI 或 ARM/Bicep删除虚拟网络集成:
az webapp vnet-integration remove --resource-group <APP-RESOURCE-GROUP> --name <APP-NAME>
重要
不要将应用服务环境的子网添加为备用子网。 此配置会导致冲突,并会阻止应用正常运行。
局限性
- 应用、应用服务环境和虚拟网络必须全部位于同一订阅中。
- 来自给定计划的每个应用只能与一个备用子网集成。
- 一个计划最多可以有四个不同的子网连接,同一计划中的应用可以使用任何连接。
- 此功能与多租户 App Service 提供的 multi-plan 子网联接功能不兼容。
专用终结点
若要为托管在“应用服务环境”中的应用启用专用终结点功能,必须首先在“应用服务环境”级别启用此功能。
可以通过Azure门户激活它。 在 应用服务环境 配置窗格中,打开设置Allow new private endpoints。
或者,可以使用以下 CLI 启用它:
az appservice ase update --name myasename --allow-new-private-endpoint-connections true
有关专用终结点和 Web 应用的详细信息,请参阅 Azure Web 应用专用终结点
DNS
以下部分介绍适用于进入和离开您应用服务环境的 DNS 注意事项和配置。 这些示例使用来自 Azure 公有云的域后缀 appserviceenvironment.cn。 如果使用其他云(如 Azure 政府),则需要使用各自的域后缀。 对于 应用服务环境 域,由于 DNS 限制,站点名称被截断为 59 个字符。 对于有槽位的 应用服务环境 域名,由于 DNS 限制,网站名称被截断为 40 个字符,而槽位名称被截断为 19 个字符。
将 DNS 配置到您的 应用服务环境
如果您的应用服务环境是使用外部的 VIP 创建的,则您的应用会自动放入公共 DNS 中。 如果您的 应用服务环境 使用内部 VIP,则在创建该 应用服务环境 时有两个选项。 如果选择自动配置Azure DNS专用区域,则会在虚拟网络中配置 DNS。 如果选择手动配置 DNS,则需要使用自己的 DNS 服务器或配置Azure DNS专用区域。 若要查找入站地址,请转到应用服务环境门户,然后选择IP 地址。
如果要使用自己的 DNS 服务器,请添加以下记录:
- 为
<应用服务环境-name>.appserviceenvironment.cn创建区域。 - 在该区域中创建一条 A 记录,指向由您的应用服务环境使用的入站 IP 地址。
- 在该区域中创建一条 A 记录,该记录将根域名(@)指向您的 应用服务环境 使用的入站 IP 地址。
- 在名为
<应用服务环境-name>.appserviceenvironment.cn的scm中创建区域。 - 在
scm区域中创建一条 A 记录,该记录指向 应用服务环境 专用终结点所使用的 IP 地址。
在Azure DNS专用区域中配置 DNS:
- 创建名为
<应用服务环境-name>.appserviceenvironment.cn的Azure DNS专用区域。 - 在该区域中,创建一条将 * 指向入站 IP 地址的 A 记录。
- 在该区域中,创建一条将 @ 指向入站 IP 地址的 A 记录。
- 在该区域中,创建一条将 *.scm 指向入站 IP 地址的 A 记录。
除了创建应用时提供的默认域名之外,您还可以为应用添加自定义域名。 无需对应用进行任何验证,即可设置自定义域名。 如果使用的是自定义域,需要确保它们已配置 DNS 记录。 可以按照上述指南配置 DNS 区域和记录,将默认域名替换为自定义域名。 自定义域名适用于应用请求,但不适用于 scm 网站。 该 scm 站点仅在 <appname>.scm.<asename>.appserviceenvironment.cn 上可用。
FTP访问的DNS配置
若要专门为 应用服务环境 v3 的内部负载均衡器(ILB)进行 FTP 访问,您需要确保 DNS 已配置。 使用以下设置配置Azure DNS专用区域或等效的自定义 DNS:
- 创建名为
ftp.appserviceenvironment.cn的Azure DNS专用区域。 - 在该区域中创建一条 A 记录,该记录指向入站 IP 地址
<应用服务环境-name>。
来自 应用服务环境 的 DNS 配置
您的应用服务环境中的应用程序使用您的虚拟网络所配置的 DNS。 如果你希望某些应用使用不同的 DNS 服务器,可以使用应用设置 WEBSITE_DNS_SERVER 和 WEBSITE_DNS_ALT_SERVER 手动设置每个应用。
WEBSITE_DNS_ALT_SERVER 配置备用 DNS 服务器。 仅当主 DNS 服务器没有响应时,才会使用辅助 DNS 服务器。