Configurar os buffers do proxy para solicitação e resposta

O SKU Standard v2 do Gateway de Aplicativo do Azure dá suporte ao armazenamento em buffer de solicitações de clientes ou respostas (dos servidores de back-end). Com base nos recursos de processamento dos clientes que interagem com o gateway de aplicativo, você pode usar esses buffers para configurar a velocidade de entrega de pacotes.

Buffer de resposta

O buffer de resposta do Gateway de Aplicativo pode coletar todos ou partes dos pacotes de resposta enviados pelo servidor de back-end antes de entregá-los aos clientes. Por padrão, o buffer de resposta é habilitado no gateway de aplicativo, o que é útil para acomodar clientes lentos. Essa configuração permite que você preserve as conexões TCP de back-end, pois elas podem ser fechadas quando o gateway de aplicativo recebe uma resposta completa e trabalha de acordo com a velocidade de processamento do cliente. Dessa forma, o Gateway de Aplicação continua a entregar a resposta no ritmo do cliente.

Buffer de solicitação

De maneira semelhante, o buffer de solicitação do gateway de aplicativo pode armazenar temporariamente todo ou partes do corpo da solicitação e, em seguida, encaminhar uma solicitação de upload maior de uma vez para o servidor de back-end. Por padrão, a configuração de buffering de solicitações é habilitada no Application Gateway e é útil para transferir ao gateway a tarefa de processamento de recompor os pacotes menores de dados, desonerando o servidor de back-end.

Observação

Por padrão, os buffers de solicitação e de resposta são habilitados no recurso de gateway de aplicativo, mas você pode optar por configurá-los separadamente. Além disso, as configurações são aplicadas em um nível de recurso e não podem ser gerenciadas separadamente para cada ouvinte.


Você pode manter o buffer de solicitação ou resposta habilitado ou desabilitado, com base em seus requisitos e no desempenho observado dos sistemas cliente que se comunicam com o Gateway de Aplicativo.


Aviso

Recomendamos enfaticamente que você teste e avalie o desempenho antes de implantar isso em gateways de produção.

Como alterar as configurações de buffer?

Você pode alterar essa configuração usando a propriedade globalConfiguration.

Método da CLI do Azure

Buffer de resposta

az network application-gateway update --name <gw-name> --resource-group <rg-name> --set globalConfiguration.enableResponseBuffering=false

Buffer de solicitação

 az network application-gateway update --name <gw-name> --resource-group <rg-name> --set globalConfiguration.enableRequestBuffering=false

Método PowerShell

Novo gateway de aplicativo

$AppGw02 = New-AzApplicationGateway -Name "ApplicationGateway02" -ResourceGroupName "ResourceGroup02" -Location $location -BackendAddressPools $pool -BackendHttpSettingsCollection $poolSetting01 -FrontendIpConfigurations $fipconfig -GatewayIpConfigurations $gipconfig -FrontendPorts $fp01 -HttpListeners $listener01 -RequestRoutingRules $rule01 -Sku $sku -EnableRequestBuffering:$false -EnableResponseBuffering:$false

Atualizar um gateway de aplicativo existente

$appgw = Get-AzApplicationGateway -Name $appgwName -ResourceGroupName $rgname
$appgw.EnableRequestBuffering = $false
$appgw.EnableResponseBuffering = $false
Set-AzApplicationGateway -ApplicationGateway $appgw

Método de modelo do ARM

{
   "$schema":"https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
   "contentVersion":"1.0.0.0",
   "parameters":{      
   },
   "variables":{      
   },
   "resources":[
      {
         "type":"Microsoft.Network/applicationGateways",
         "apiVersion":"xxx-xx-xx",
         "name":"[parameters('applicationGateways_xxxx_x_xx_name')]",
         "location":"eastus",
         "tags":{            
         },
         "identity":{      
         },
         "properties":{
            "globalConfiguration":{
               "enableRequestBuffering":false,
               "enableResponseBuffering":false
            }
         }
      }
   ]
} 

Para referência, visite SDK do Azure para .NET

Limitações

  • A API versão 01/01/2020 ou posterior deve ser usada para configurar buffers.
  • Atualmente, essas mudanças não são suportadas pelo portal do Azure.
  • O armazenamento em buffer de solicitações não pode ser desabilitado se você estiver usando a SKU de WAF do Gateway de Aplicativo. O WAF requer que a solicitação completa seja armazenada em buffer como parte do processamento; portanto, mesmo que você desabilite o armazenamento em buffer da solicitação no Application Gateway, o WAF ainda armazena a solicitação em buffer. O buffer de resposta não é afetado pelo WAF.