你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在创建应用程序网关时,可以使用 Azure CLI 配置 Web 流量重定向。 在本教程中,可以配置侦听器和重定向到外部站点的应用程序网关在到达的 web 流量的规则。
在本文中,学习如何:
- 设置网络
- 创建侦听器和重定向规则
- 创建应用程序网关
如果没有 Azure 帐户,请在开始前创建一个免费帐户。
先决条件
在 Azure Cloud Shell 中使用 Bash 环境。 有关详细信息,请参阅 Azure Cloud Shell 入门。
如果要在本地运行 CLI 引用命令,请安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI。
如果使用的是本地安装,请使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅 使用 Azure CLI 向 Azure 进行身份验证。
按照提示,请在首次使用时安装 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_v2 \
--http-settings-cookie-based-affinity Disabled \
--frontend-port 8080 \
--http-settings-port 80 \
--http-settings-protocol Http \
--public-ip-address myAGPublicIPAddress \
--priority 10
创建应用程序网关可能需要几分钟时间。 创建应用程序网关后,可以看到它的这些新功能:
- appGatewayBackendPool - 应用程序网关必须至少具有一个后端地址池。
- appGatewayBackendHttpSettings - 指定将端口 80 和 HTTP 协议用于通信。
- appGatewayHttpListener - 与 appGatewayBackendPool 关联的默认侦听器。
- appGatewayFrontendIP - 将 myAGPublicIPAddress 分配给 appGatewayHttpListener。
- rule1 - 与 appGatewayHttpListener 关联的默认路由规则。
添加重定向配置
使用 az network application-gateway redirect-config create 将流量从 www.contoso.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 network application-gateway frontend-port create 创建的前端端口,使用 az network application-gateway http-listener create 创建侦听器。 侦听器需要使用规则来了解哪个后端池使用传入流量。 使用 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 \
--priority 11
测试应用程序网关
若要获取应用程序网关的公共 IP 地址,可以使用 az network public-ip show。 复制该公共 IP 地址,并将其粘贴到浏览器的地址栏。
应该会看到 bing.com 出现在浏览器中。