Configurare il buffer proxy di richiesta e risposta

Lo SKU Standard v2 di gateway applicazione di Azure supporta il buffering delle richieste dai client o delle risposte (dai server back-end). In base alle funzionalità di elaborazione dei client che interagiscono con il gateway applicazione, è possibile usare questi buffer per configurare la velocità di recapito dei pacchetti.

Buffer di risposta

Il buffer di risposta del gateway applicazione può raccogliere tutti o parti dei pacchetti di risposta inviati dal server back-end, prima di recapitarli ai client. Per impostazione predefinita, il buffering delle risposte è abilitato su Application Gateway, il che è utile per gestire client lenti. Questa impostazione consente di risparmiare le connessioni TCP back-end in quanto possono essere chiuse dopo che il gateway applicazione riceve la risposta completa e funziona in base alla velocità di elaborazione del client. In questo modo, Application Gateway continua a inviare la risposta in base alla velocità del client.

Buffer di richiesta

In modo analogo, il buffer delle richieste del gateway applicazione può archiviare temporaneamente l'intero corpo della richiesta o parti del corpo della richiesta e quindi inoltrare una richiesta di caricamento più grande contemporaneamente al server back-end. Per impostazione predefinita, l'impostazione di memorizzazione nel buffer delle richieste è abilitata in Application Gateway ed è utile per delegare al gateway l'elaborazione necessaria per riassemblare i pacchetti di dati più piccoli, alleggerendo così il server back-end.

Nota

Per impostazione predefinita, i buffer di richiesta e risposta sono abilitati nella risorsa del gateway applicazione, ma è possibile scegliere di configurarli separatamente. Inoltre, le impostazioni vengono applicate a livello di risorsa e non possono essere gestite separatamente per ogni listener.


È possibile mantenere il buffer delle richieste o delle risposte, abilitato o disabilitato, in base ai propri requisiti e alle prestazioni riscontrate nei sistemi client che comunicano con il proprio Application Gateway.


Avviso

È consigliabile testare e valutare le prestazioni prima dell'implementazione nei gateway di produzione.

Come modificare le impostazioni del buffer?

È possibile modificare questa impostazione usando la proprietà globalConfiguration.

Metodo interfaccia della riga di comando di Azure

Buffer di risposta

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

Buffer delle richieste

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

Metodo basato su PowerShell

Nuovo gateway applicazione

$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

Aggiornare un gateway applicativo esistente

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

Metodo del template 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
            }
         }
      }
   ]
} 

Per informazioni di riferimento, vedere Azure SDK per .NET

Limiti

  • L'API versione 2020-01-01 o successiva deve essere usata per configurare i buffer.
  • Attualmente, queste modifiche non sono supportate tramite il portale Azure.
  • Il buffer delle richieste non può essere disabilitato se si usa lo SKU WAF di Application Gateway. Il web application firewall richiede che la richiesta completa venga memorizzata nel buffer come parte dell'elaborazione, pertanto, anche se si disabilita il buffer delle richieste all'interno del gateway applicazione, il web application firewall continua a memorizzare nel buffer la richiesta. Il buffering delle risposte non è interessato dal WAF.