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.
Puede usar Azure PowerShell para configurar reglas para volver a escribir encabezados de solicitud y respuesta HTTP al crear la nueva SKU de puerta de enlace de aplicación con escalado automático y redundante por zonas.
En este artículo aprenderá a:
- Creación de una red virtual de escalado automático
- Creación de una dirección IP pública reservada
- Configuración de la infraestructura de Application Gateway
- Especifica tu configuración de la regla de reescritura de encabezado HTTP
- Especifique el escalado automático
- Creación de la puerta de enlace de aplicaciones
- Prueba de la puerta de enlace de aplicaciones
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Prerrequisitos
Este artículo requiere que ejecute Azure PowerShell localmente. Debe tener instalado el módulo Az versión 1.0.0 o posterior. Ejecute Import-Module Az y luego Get-Module Az para encontrar la versión. Si necesita actualizar, consulte Instalación del módulo de Azure PowerShell. Después de verificar la versión de PowerShell, ejecute Login-AzAccount para crear una conexión con Azure.
Inicio de sesión en Azure
Connect-AzAccount
Select-AzSubscription -Subscription "<sub name>"
Creación de un grupo de recursos
Cree un grupo de recursos en una de las ubicaciones disponibles.
$location = "East US 2"
$rg = "<rg name>"
#Create a new Resource Group
New-AzResourceGroup -Name $rg -Location $location
Creación de una red virtual
Cree una red virtual con una subred dedicada para una puerta de enlace de aplicaciones de escalado automático. Actualmente, solo se puede implementar una puerta de enlace de aplicaciones de escalado automático en cada subred dedicada.
#Create VNet with two subnets
$sub1 = New-AzVirtualNetworkSubnetConfig -Name "AppGwSubnet" -AddressPrefix "10.0.0.0/24"
$sub2 = New-AzVirtualNetworkSubnetConfig -Name "BackendSubnet" -AddressPrefix "10.0.1.0/24"
$vnet = New-AzvirtualNetwork -Name "AutoscaleVNet" -ResourceGroupName $rg `
-Location $location -AddressPrefix "10.0.0.0/16" -Subnet $sub1, $sub2
Creación de una dirección IP pública reservada
Especifique el método de asignación de PublicIPAddress como Static. La dirección IP virtual de la puerta de enlace de aplicaciones con escalabilidad automática solo puede ser estática. No se admiten direcciones IP dinámicas. Solo se admite la SKU estándar de PublicIpAddress.
#Create static public IP
$pip = New-AzPublicIpAddress -ResourceGroupName $rg -name "AppGwVIP" `
-location $location -AllocationMethod Static -Sku Standard
Recuperar detalles
Recupere los detalles del grupo de recursos, la subred y la dirección IP en un objeto local para crear los detalles de configuración de IP de la puerta de enlace de aplicaciones.
$resourceGroup = Get-AzResourceGroup -Name $rg
$publicip = Get-AzPublicIpAddress -ResourceGroupName $rg -name "AppGwVIP"
$vnet = Get-AzvirtualNetwork -Name "AutoscaleVNet" -ResourceGroupName $rg
$gwSubnet = Get-AzVirtualNetworkSubnetConfig -Name "AppGwSubnet" -VirtualNetwork $vnet
Configuración de la infraestructura
Configure la dirección IP, la dirección IP de front-end, el grupo de servidores back-end, los ajustes de HTTP, el certificado, el puerto, el agente de escucha y la regla con un formato idéntico al de la puerta de enlace de aplicación estándar existente. La nueva SKU sigue el mismo modelo de objetos que la SKU estándar.
$ipconfig = New-AzApplicationGatewayIPConfiguration -Name "IPConfig" -Subnet $gwSubnet
$fip = New-AzApplicationGatewayFrontendIPConfig -Name "FrontendIPCOnfig" -PublicIPAddress $publicip
$pool = New-AzApplicationGatewayBackendAddressPool -Name "Pool1" `
-BackendIPAddresses testbackend1.westus.cloudapp.azure.com, testbackend2.westus.cloudapp.azure.com
$fp01 = New-AzApplicationGatewayFrontendPort -Name "HTTPPort" -Port 80
$listener01 = New-AzApplicationGatewayHttpListener -Name "HTTPListener" `
-Protocol Http -FrontendIPConfiguration $fip -FrontendPort $fp01
$setting = New-AzApplicationGatewayBackendHttpSettings -Name "BackendHttpSetting1" `
-Port 80 -Protocol Http -CookieBasedAffinity Disabled
Especificar la configuración de la regla de reescritura del encabezado HTTP
Configure los nuevos objetos necesarios para volver a escribir los encabezados http:
RequestHeaderConfiguration: este objeto se usa para especificar los campos de encabezado de solicitud en los que pretende reescribir y el nuevo valor en el que se deben volver a escribir los encabezados originales.
ResponseHeaderConfiguration: este objeto se usa para especificar los campos de encabezado de respuesta en los que pretende reescribir y el nuevo valor en el que se deben volver a escribir los encabezados originales.
ActionSet: este objeto contiene las configuraciones de los encabezados de solicitud y respuesta especificados anteriormente.
RewriteRule: este objeto contiene todos los conjuntos de acciones especificados anteriormente.
RewriteRuleSet: este objeto contiene todas las reglas de reescritura y necesitará adjuntarse a una regla de enrutamiento de solicitudes, ya sea básica o basada en rutas.
$requestHeaderConfiguration = New-AzApplicationGatewayRewriteRuleHeaderConfiguration -HeaderName "X-isThroughProxy" -HeaderValue "True" $responseHeaderConfiguration = New-AzApplicationGatewayRewriteRuleHeaderConfiguration -HeaderName "Strict-Transport-Security" -HeaderValue "max-age=31536000" $actionSet = New-AzApplicationGatewayRewriteRuleActionSet -RequestHeaderConfiguration $requestHeaderConfiguration -ResponseHeaderConfiguration $responseHeaderConfiguration $rewriteRule = New-AzApplicationGatewayRewriteRule -Name rewriteRule1 -ActionSet $actionSet $rewriteRuleSet = New-AzApplicationGatewayRewriteRuleSet -Name rewriteRuleSet1 -RewriteRule $rewriteRule
Especificación de la regla de enrutamiento
Cree una regla de enrutamiento de solicitudes. Una vez creada, esta configuración de reescritura se conecta al cliente de escucha de origen mediante la regla de enrutamiento. Cuando se usa una regla de enrutamiento básica, la configuración de reescritura de encabezado está asociada a un agente de escucha de origen y es una reescritura de encabezado global. Al usar una regla de enrutamiento basada en rutas, la configuración de reescritura de encabezado se define en la asignación de la ruta de acceso de URL. Por lo tanto, solo se aplica al área de ruta de acceso específica de un sitio. A continuación, se crea una regla de enrutamiento básica y se adjunta el conjunto de reglas de reescritura.
$rule01 = New-AzApplicationGatewayRequestRoutingRule -Name "Rule1" -RuleType basic `
-BackendHttpSettings $setting -HttpListener $listener01 -BackendAddressPool $pool -RewriteRuleSet $rewriteRuleSet
Especifique el escalado automático
Ahora puede especificar la configuración de escalado automático para la puerta de enlace de aplicaciones. Se admiten dos tipos de configuración de escalado automático:
Modo de capacidad fija. En este modo, la puerta de enlace de aplicación no escala automáticamente y funciona con una unidad de escalado fija.
$sku = New-AzApplicationGatewaySku -Name Standard_v2 -Tier Standard_v2 -Capacity 2Modo de escalado automático. En este modo, la puerta de enlace de aplicaciones se escala automáticamente en función del patrón de tráfico de la aplicación.
$autoscaleConfig = New-AzApplicationGatewayAutoscaleConfiguration -MinCapacity 2 $sku = New-AzApplicationGatewaySku -Name Standard_v2 -Tier Standard_v2
Creación de la puerta de enlace de aplicaciones
Cree la puerta de enlace de aplicaciones e incluya zonas de redundancia y la configuración de escalado automático.
$appgw = New-AzApplicationGateway -Name "AutoscalingAppGw" -Zone 1,2,3 -ResourceGroupName $rg -Location $location -BackendAddressPools $pool -BackendHttpSettingsCollection $setting -GatewayIpConfigurations $ipconfig -FrontendIpConfigurations $fip -FrontendPorts $fp01 -HttpListeners $listener01 -RequestRoutingRules $rule01 -Sku $sku -AutoscaleConfiguration $autoscaleConfig -RewriteRuleSet $rewriteRuleSet
Prueba de la puerta de enlace de aplicaciones
Use Get-AzPublicIPAddress para obtener la dirección IP pública de la puerta de enlace de aplicaciones. Copie la dirección IP pública o el nombre DNS y péguela en la barra de direcciones del explorador.
Get-AzPublicIPAddress -ResourceGroupName $rg -Name AppGwVIP
Limpieza de recursos
En primer lugar, explore los recursos que se crearon con la puerta de enlace de aplicaciones. A continuación, cuando ya no sean necesarios, puede usar el Remove-AzResourceGroup comando para quitar el grupo de recursos, la puerta de enlace de aplicaciones y todos los recursos relacionados.
Remove-AzResourceGroup -Name $rg