You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/application-gateway/application-gateway-autoscaling-zone-redundant.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -35,10 +35,12 @@ However, it’s important to note that provisioning a new instance may take appr
35
35
36
36
For scale-in events, Application Gateway drains existing connections for 5 minutes on the instance that is subject for removal. After 5 minutes, existing connections are closed and the instance removed. Any new connections during or after the 5 minute scale-in time is established to other existing instances on the same gateway.
37
37
38
+
> [!NOTE]
39
+
> During autoscaling events, brief dips in availability metrics may be observed. This behavior is expected during scaling transitions and typically resolves within seconds.
40
+
38
41
## Next steps
39
42
40
43
- Learn more about zone redundancy in [Reliability for Application Gateway v2](/azure/reliability/reliability-application-gateway-v2)
41
44
- Learn how to [Schedule autoscaling for Application Gateway](application-gateway-externally-managed-scheduled-autoscaling.md)
42
45
- Learn more about [Application Gateway v2](overview-v2.md)
43
46
-[Create an autoscaling, zone redundant application gateway with a reserved virtual IP address using Azure PowerShell](tutorial-autoscale-ps.md)
Copy file name to clipboardExpand all lines: articles/application-gateway/application-gateway-components.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -131,7 +131,7 @@ A backend pool routes request to backend servers, which serve the request. Backe
131
131
- Public IP addresses
132
132
- Internal IP addresses
133
133
- FQDN (fully qualified domain names) or short names (single-label domain names), provided your DNS server can resolve them
134
-
- Multitenant backends (such as App Service)
134
+
- Multitenant backends such as Azure App Service and Azure Container Apps. See [Protect Container Apps with Application Gateway and WAF](../container-apps/waf-app-gateway.md) for implementation guidance.
135
135
136
136
Application Gateway backend pool members aren't tied to an availability set. An application gateway can communicate with instances outside of the virtual network that it's in. As a result, the members of the backend pools can be across clusters, across datacenters, or outside Azure, as long as there's IP connectivity.
Copy file name to clipboardExpand all lines: articles/application-gateway/application-gateway-probe-overview.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -82,6 +82,10 @@ The following table provides definitions for the properties of a custom health p
82
82
| Interval |Probe interval in seconds. This value is the time interval between two consecutive probes |
83
83
| Time-out |Probe time-out in seconds. If a valid response isn't received within this time-out period, the probe is marked as failed |
84
84
| Unhealthy threshold |Probe retry count. The backend server is marked down after the consecutive probe failure count reaches the unhealthy threshold |
85
+
| MinServers |Minimum number of servers that are always marked healthy. Default value is 0, which means health probe results determine the health status of all backend servers. When set to a value greater than 0, the specified number of servers are always marked as healthy regardless of probe results. This property is only configurable via PowerShell, Azure CLI, or ARM templates (not available in Azure portal).|
86
+
87
+
> [!WARNING]
88
+
> Use the **MinServers** parameter with caution. When MinServers is set to a value greater than 0, Application Gateway always marks that minimum number of backend servers as healthy, even if their health probes are failing. This can result in traffic being sent to unhealthy servers, potentially causing 502 Bad Gateway errors or other connectivity issues for clients. Only configure MinServers if you have specific availability requirements and understand the implications of overriding health probe results.
Copy file name to clipboardExpand all lines: articles/application-gateway/application-gateway-secure-flag-session-affinity.md
+7-1Lines changed: 7 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,6 +19,9 @@ In this guide you learn to create a Rewrite set for your Application Gateway and
19
19
* You must have an Azure subscription. You can create a [free account](https://azure.microsoft.com/pricing/purchase-options/azure-account?cid=msft_learn) before you begin.
20
20
* An existing Application Gateway resource configured with at least one Listener, Rule, Backend Setting and Backend Pool configuration. If you don't have one, you can create one by following the [QuickStart guide](quick-create-portal.md).
21
21
22
+
> [!IMPORTANT]
23
+
> If your backend application returns multiple Set-Cookie headers (for example, application cookies in addition to the ApplicationGatewayCookie), the simple pattern matching approach shown in this article will apply the rewrite to all Set-Cookie headers. To target only the ApplicationGatewayCookie specifically, use the HeaderValueMatcher pattern matching feature. For more information, see [Pattern matching for Set-Cookie headers](rewrite-http-headers-url.md#pattern-matching).
24
+
22
25
## Creating a Rewrite set
23
26
24
27
1. Sign in to the Azure portal.
@@ -41,6 +44,8 @@ In this guide you learn to create a Rewrite set for your Application Gateway and
41
44
1. Case-sensitive - No
42
45
1. Operator - equal (=)
43
46
1. Pattern to match - (.*)
47
+
> [!NOTE]
48
+
> This pattern `(.*)` matches all Set-Cookie headers. If you need to target only the ApplicationGatewayCookie and preserve other Set-Cookie headers, see [Pattern matching for Set-Cookie headers](rewrite-http-headers-url.md#pattern-matching) to use the HeaderValueMatcher feature.
44
49
1. To save these details, select **OK**.
45
50
1. Go to the **Then** box to specify action details.
46
51
1. Rewrite type - Response header
@@ -53,4 +58,5 @@ In this guide you learn to create a Rewrite set for your Application Gateway and
53
58
54
59
55
60
## Next steps
56
-
[Visit other configurations of a Backend Setting](configuration-http-settings.md)
61
+
-[Visit other configurations of a Backend Setting](configuration-http-settings.md)
62
+
-[Learn about pattern matching for Set-Cookie headers](rewrite-http-headers-url.md#pattern-matching)
> When creating an application gateway resource through the Azure portal, the default option for **HTTP2** is set as enabled. You can choose **Disabled** during creation, and re-enabled HTTP2 support using the Azure portal by selecting **Enabled** under **HTTP2** in **Application gateway > Configuration**.
96
96
>
97
97
> In instances where HTTP2 isn't supported by a client, HTTP1.1 will be used. Enabling HTTP2 doesn't disable HTTP1.1; it allows support for both.
98
-
>
98
+
99
+
> [!NOTE]
100
+
> Application Gateway only supports HTTP/2 over TLS (HTTPS listeners). HTTP/2 Cleartext (h2c) protocol upgrade attempts from HTTP/1.1 are not supported and will result in a 403 Forbidden error. Clients attempting h2c upgrades should use native HTTP/2 connections over HTTPS or remain on HTTP/1.1.
| Invalid value in Content-Length | Content-Length: **abc**,Content-Length: **-10**|
67
+
| Invalid value in Content-Length | Content-Length: **abc**,Content-Length: **-10**|
68
68
69
69
For cases when mutual authentication is configured, several scenarios can lead to an HTTP 400 response being returned the client, such as:
70
70
- Mutual authentication is enabled but the Client certificate wasn't presented.
@@ -93,6 +93,7 @@ An HTTP 401 unauthorized response can be returned to AppGW probe request if the
93
93
HTTP 403 Forbidden is presented when customers are utilizing WAF (Web Application Firewall) skus and have WAF configured in Prevention mode. If enabled WAF rulesets or custom deny WAF rules match the characteristics of an inbound request, the client is presented a 403 forbidden response.
94
94
95
95
Other reasons for clients receiving 403 responses include:
96
+
-**h2c protocol upgrade attempts**: Application Gateway returns 403 errors when clients attempt to upgrade from HTTP/1.1 to HTTP/2.0 using the h2c protocol (HTTP/2 Cleartext). Application Gateway only supports HTTP/2 over TLS (HTTPS listeners); h2c protocol upgrades over HTTP listeners are not supported. This behavior occurs regardless of WAF mode. Clients should use native HTTP/2 connections over HTTPS or remain on HTTP/1.1 without upgrade attempts.
96
97
- You're using App Service as backend and it's configured to allow access only from Application Gateway. This can return a 403 error by App Services. This typically happens due to redirects/href links that point directly to App Services instead of pointing at the Application Gateway's IP address.
97
98
- If you're accessing a storage blog and the Application Gateway and storage endpoint is in different region, then a 403 error is returned if the Application Gateway's public IP address isn't allow-listed. See [Grant access from an internet IP range](/azure/storage/common/storage-network-security?tabs=azure-portal#grant-access-from-an-internet-ip-range).
Copy file name to clipboardExpand all lines: articles/application-gateway/key-vault-certs.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -77,7 +77,8 @@ Define access policies to use the user-assigned managed identity with your Key V
77
77
3. If you're using the permission model **Vault access policy**: Select **Access Policies**, select **+ Add Access Policy**, select **Get** for **Secret permissions**, and choose your user-assigned managed identity for **Select principal**. Then select **Save**.
78
78
79
79
If you're using **Azure role-based access control** follow the article [Assign a managed identity access to a resource](/entra/identity/managed-identities-azure-resources/how-to-assign-access-azure-resource) and assign the user-assigned managed identity the **Key Vault Secrets User** role to the Azure Key Vault.
80
-
80
+
> [!NOTE]
81
+
> When using Azure RBAC with Key Vault, if you're configuring the Application Gateway integration using PowerShell, Azure CLI, or REST API (for example, using `Get-AzKeyVaultSecret` or `az keyvault secret show`), the **user or service principal** performing these operations also needs the **Key Vault Secrets User** role (or equivalent permissions) on the Key Vault. This is because these management operations run in your security context, not the Application Gateway's managed identity context. The managed identity is used by Application Gateway at runtime to retrieve certificates.
81
82
### Verify Firewall Permissions to Key Vault
82
83
83
84
As of March 15, 2021, Key Vault recognizes Application Gateway as a trusted service by leveraging User Managed Identities for authentication to Azure Key Vault. With the use of service endpoints and enabling the trusted services option for Key Vault's firewall, you can build a secure network boundary in Azure. You can deny access to traffic from all networks (including internet traffic) to Key Vault but still make Key Vault accessible for an Application Gateway resource under your subscription.
0 commit comments