Application Gateway Features

Azure Application Gateway is a scalable, elastic, and fully programmable web application firewall (WAF) as a service. It enables you to manage traffic to your web applications. It supports many features to meet your application's load-balancing needs.

Key Features

Getting Started

Explore the comprehensive documentation to learn how to configure and manage Azure Application Gateway for your specific needs. You can start by creating a new Application Gateway instance in the Azure portal.

Create Application Gateway

Advanced Configurations

Application Gateway offers advanced features for more complex scenarios:

Code Example: Basic Configuration

Here's a simplified example of a JSON configuration for an Application Gateway (this is illustrative and not a complete deployable ARM template):


{
  "type": "Microsoft.Network/applicationGateways",
  "apiVersion": "2023-06-01",
  "name": "myAppGateway",
  "location": "eastus",
  "properties": {
    "sku": {
      "name": "Standard_v2",
      "tier": "Standard_v2"
    },
    "gatewayIPConfigurations": [
      {
        "name": "appGatewayIpConfig",
        "properties": {
          "subnet": {
            "id": "/subscriptions/YOUR_SUB_ID/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/myAppGatewaySubnet"
          }
        }
      }
    ],
    "frontendPorts": [
      {
        "name": "httpPort",
        "properties": { "port": 80 }
      },
      {
        "name": "httpsPort",
        "properties": { "port": 443 }
      }
    ],
    "backendAddressPools": [
      {
        "name": "appBackendPool",
        "properties": {
          "backendAddresses": [
            { "ipAddress": "10.0.0.4" },
            { "ipAddress": "10.0.0.5" }
          ]
        }
      }
    ],
    "httpListeners": [
      {
        "name": "appGatewayHttpListener",
        "properties": {
          "frontendPort": { "id": "[resourceId('Microsoft.Network/applicationGateways/frontendPorts', parameters('applicationGatewayName'), 'httpPort')]" },
          "frontendIPConfiguration": { "id": "[resourceId('Microsoft.Network/applicationGateways/gatewayIPConfigurations', parameters('applicationGatewayName'), 'appGatewayIpConfig')]" },
          "protocol": "Http"
        }
      }
    ],
    "requestRoutingRules": [
      {
        "name": "rule1",
        "properties": {
          "priority": 100,
          "ruleType": "Basic",
          "httpListener": { "id": "[resourceId('Microsoft.Network/applicationGateways/httpListeners', parameters('applicationGatewayName'), 'appGatewayHttpListener')]" },
          "backendAddressPool": { "id": "[resourceId('Microsoft.Network/applicationGateways/backendAddressPools', parameters('applicationGatewayName'), 'appBackendPool')]" },
          "backendHttpSettings": { "id": "[resourceId('Microsoft.Network/applicationGateways/backendHttpSettingsCollection', parameters('applicationGatewayName'), 'appSettings')]" }
        }
      }
    ],
    "backendHttpSettingsCollection": [
      {
        "name": "appSettings",
        "properties": {
          "port": 80,
          "protocol": "Http",
          "cookieBasedAffinity": "Disabled",
          "pickHostNameFromBackendAddress": false
        }
      }
    ]
  }
}