你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 Azure CLI 创建支持外部重定向的应用程序网关
你可以使用 Azure CLI 配置 web 流量重定向创建时应用程序网关。 在本教程中,可以配置侦听器和重定向到外部站点的应用程序网关在到达的 web 流量的规则。
在本文中,学习如何:
- 设置网络
- 创建侦听器和重定向规则
- 创建应用程序网关
如果没有 Azure 订阅,请在开始之前创建一个 Azure 免费帐户。
先决条件
在 Azure Cloud Shell 中使用 Bash 环境。 有关详细信息,请参阅 Azure Cloud Shell 中的 Bash 快速入门。
如需在本地运行 CLI 参考命令,请安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI。
如果使用的是本地安装,请使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅使用 Azure CLI 登录。
出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展详细信息,请参阅使用 Azure CLI 的扩展。
运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade。
- 本教程需要 Azure CLI 版本 2.0.4 或更高版本。 如果使用 Azure Cloud Shell,则最新版本已安装。
创建资源组
资源组是在其中部署和管理 Azure 资源的逻辑容器。 使用 az group create 创建资源组。
以下示例在 eastus 位置创建名为 myResourceGroupAG 的资源组 。
az group create --name myResourceGroupAG --location eastus
创建网络资源
使用 az network vnet create 创建名为 myVNet 的虚拟网络和名为 myAGSubnet 的子网。 使用 az network public-ip create 创建名为 myAGPublicIPAddress 的公共 IP 地址。 这些资源用于提供与应用程序网关及其关联资源的网络连接。
az network vnet create \
--name myVNet \
--resource-group myResourceGroupAG \
--location eastus \
--address-prefix 10.0.0.0/16 \
--subnet-name myAGSubnet \
--subnet-prefix 10.0.1.0/24
az network public-ip create \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress
创建应用程序网关
可以使用 az network application-gateway create 创建名为 myAppGateway 的应用程序网关。 使用 Azure CLI 创建应用程序网关时,请指定配置信息,例如容量、sku 和 HTTP 设置。 将应用程序网关分配给之前创建的 myAGSubnet 和 myPublicIPAddress。
az network application-gateway create \
--name myAppGateway \
--location eastus \
--resource-group myResourceGroupAG \
--vnet-name myVNet \
--subnet myAGsubnet \
--capacity 2 \
--sku Standard_Medium \
--http-settings-cookie-based-affinity Disabled \
--frontend-port 8080 \
--http-settings-port 80 \
--http-settings-protocol Http \
--public-ip-address myAGPublicIPAddress
创建应用程序网关可能需要几分钟时间。 创建应用程序网关后,可以看到它的这些新功能:
- appGatewayBackendPool - 应用程序网关必须至少具有一个后端地址池。
- appGatewayBackendHttpSettings - 指定将端口 80 和 HTTP 协议用于通信。
- appGatewayHttpListener - 与 appGatewayBackendPool 关联的默认侦听器。
- appGatewayFrontendIP - 将 myAGPublicIPAddress 分配给 appGatewayHttpListener。
- rule1 - 与 appGatewayHttpListener 关联的默认路由规则。
添加重定向配置
使用 az network application-gateway redirect-config create 将流量从 www.consoto.org 发送到 www.contoso.com 的侦听器的重定向配置添加到应用程序网关。
az network application-gateway redirect-config create \
--name myredirect \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--type Temporary \
--target-url "https://bing.com"
添加侦听器和路由规则
应用程序网关需要侦听器才能适当地将流量路由到后端池。 使用创建侦听器az 网络应用程序网关 http 侦听器创建使用创建的前端端口与az 网络应用程序网关前端端口创建。 侦听器需要使用规则来了解哪个后端池使用传入流量。 使用 az network application-gateway rule create 创建名为 redirectRule 的基本规则。
az network application-gateway frontend-port create \
--port 80 \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name redirectPort
az network application-gateway http-listener create \
--name redirectListener \
--frontend-ip appGatewayFrontendIP \
--frontend-port redirectPort \
--resource-group myResourceGroupAG \
--gateway-name myAppGateway
az network application-gateway rule create \
--gateway-name myAppGateway \
--name redirectRule \
--resource-group myResourceGroupAG \
--http-listener redirectListener \
--rule-type Basic \
--redirect-config myredirect
测试应用程序网关
若要获取应用程序网关的公共 IP 地址,可以使用 az network public-ip show。 复制该公共 IP 地址,并将其粘贴到浏览器的地址栏。
应该会看到 bing.com 出现在浏览器中。