Skip to content

Commit bbc79da

Browse files
Merge pull request #307775 from MicrosoftDocs/main
Auto Publish – main to live - 2025-11-04 23:00 UTC
2 parents 56ce8c2 + cc4b2ab commit bbc79da

74 files changed

Lines changed: 820 additions & 702 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

articles/application-gateway/configuration-infrastructure.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ Depending on whether you're creating new resources or using existing ones, add t
9393
For more information, see [Azure permissions for Networking](../role-based-access-control/permissions/networking.md) and [Virtual network permissions](../virtual-network/virtual-network-manage-subnet.md#permissions).
9494

9595
> [!NOTE]
96-
> When deploying an Application Gateway as part of an [Azure Managed Applicaton](../azure-resource-manager/managed-applications/overview.md), ensure that any deny assignments do not conflict with the RBAC Owner role assignment, as deny assignments take precedence over RBAC permissions.
96+
> When deploying an Application Gateway as part of an [Azure Managed Application](../azure-resource-manager/managed-applications/overview.md), ensure that any deny assignments do not conflict with the RBAC Owner role assignment, as deny assignments take precedence over RBAC permissions.
9797
9898
## Roles scope
9999
In the process of custom role definition, you can specify a role assignment scope at four levels: management group, subscription, resource group, and resources. To grant access, you assign roles to users, groups, service principals, or managed identities at a particular scope.

articles/application-gateway/create-url-route-portal.md

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ services: application-gateway
55
author: mbender-ms
66
ms.service: azure-application-gateway
77
ms.topic: tutorial
8-
ms.date: 02/05/2025
8+
ms.date: 10/06/2025
99
ms.author: mbender
1010
ms.custom: sfi-image-nochange
1111
#Customer intent: As an IT administrator, I want to use the Azure portal to set up an application gateway so I can route my app traffic based on path-based routing rules.
@@ -49,7 +49,6 @@ In this example, you create three virtual machines to be used as backend servers
4949
- **Username**: Type a user name
5050
- **Password**: Type a password
5151

52-
5352
4. Select **Next:Disks**.
5453
5. Select **Next:Networking**
5554
6. For **Virtual network**, select **Create new** and then type these values for the virtual network:
@@ -60,6 +59,7 @@ In this example, you create three virtual machines to be used as backend servers
6059
- *10.0.1.0/24* - for the subnet address space.
6160
- *myAGSubnet* - for the second subnet name.
6261
- *10.0.0.0/24* - for the subnet address space.
62+
6363
7. Select **OK**.
6464

6565
8. Ensure that under **Subnet**, **myBackendSubnet** is selected for the subnet, and then select **Next: Management**.
@@ -70,9 +70,6 @@ In this example, you create three virtual machines to be used as backend servers
7070
### Install IIS
7171

7272
1. Open the interactive shell and make sure that it's set to **PowerShell**.
73-
74-
![Screenshot of install custom extension](./media/application-gateway-create-url-route-portal/application-gateway-extension.png)
75-
7673
2. Run the following command to install IIS on the virtual machine:
7774

7875
```azurepowershell

articles/application-gateway/how-to-troubleshoot-application-gateway-session-affinity-issues.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ Enable logging using the Azure portal.
128128

129129
### Use web debugger to capture and analyze the HTTP or HTTPS traffics
130130

131-
Web debugging tools like Fiddler can help you debug web applications by capturing network traffic between the Internet and test computers. These tools enable you to inspect incoming and outgoing data as the browser receives/sends them. Fiddler, in this example, has the HTTP replay option that can help you troubleshoot client-side issues with web applications, especially for authenticaton issues.
131+
Web debugging tools like Fiddler can help you debug web applications by capturing network traffic between the Internet and test computers. These tools enable you to inspect incoming and outgoing data as the browser receives/sends them. Fiddler, in this example, has the HTTP replay option that can help you troubleshoot client-side issues with web applications, especially for authentication issues.
132132

133133
Use the web debugger of your choice. In this sample we'll use Fiddler to capture and analyze http or https traffics, follow the instructions:
134134

articles/application-gateway/ingress-controller-letsencrypt-certificate-application-gateway.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,13 @@ Use the following steps to install [cert-manager](https://docs.cert-manager.io)
9595
# you prove ownership of a domain by ensuring that a particular
9696
# file is present at the domain
9797
solvers:
98-
- http01:
98+
- http01:
9999
ingress:
100-
# class: azure/application-gateway
101-
ingressTemplate:
102-
metadata:
103-
annotations:
104-
kubernetes.io/ingress.class: azure/application-gateway
100+
# class: azure/application-gateway
101+
ingressTemplate:
102+
metadata:
103+
annotations:
104+
kubernetes.io/ingress.class: azure/application-gateway
105105
EOF
106106
```
107107
Binary file not shown.
Binary file not shown.
Binary file not shown.

articles/application-gateway/monitor-application-gateway-reference.md

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Monitoring data reference for Azure Application Gateway
33
description: This article contains important reference material you need when you monitor Azure Application Gateway.
4-
ms.date: 06/04/2025
4+
ms.date: 11/04/2025
55
ms.topic: reference
66
author: mbender-ms
77
ms.author: mbender
@@ -75,7 +75,7 @@ For Application Gateway v1 SKU, the following metrics are available. What follow
7575

7676
- **Current connections**. Count of current connections established with Application Gateway.
7777

78-
- **Failed Requests**. Number of requests that failed due to connection issues. This count includes requests that failed due to exceeding the "Request time-out" HTTP setting and requests that failed due to connection issues between Application gateway and backend. This count doesn't include failures due to no healthy backend being available. 4xx and 5xx responses from the backend are also not considered as part of this metric.
78+
- **Failed Requests**. Number of requests that failed due to connection issues. This count includes requests that failed due to exceeding the "Request timeout" HTTP setting and requests that failed due to connection issues between Application gateway and backend. This count doesn't include failures due to no healthy backend being available. 4xx and 5xx responses from the backend are also not considered as part of this metric.
7979

8080
- **Response Status**. HTTP response status returned by Application Gateway. The response status code distribution can be further categorized to show responses in 2xx, 3xx, 4xx, and 5xx categories.
8181

@@ -174,7 +174,7 @@ Application Gateway's layer 4 proxy provides the capability to monitor the healt
174174

175175
[!INCLUDE [Microsoft.Network/applicationgateways](~/reusable-content/ce-skilling/azure/includes/azure-monitor/reference/logs/microsoft-network-applicationgateways-logs-include.md)]
176176

177-
- **Access log**. You can use the Access log to view Application Gateway access patterns and analyze important information. This information includes the caller's IP, requested URL, response latency, return code, and bytes in and out. An access log is collected every 60 seconds. This log contains one record per instance of Application Gateway. The `instanceId` property identifies the Application Gateway instance.
177+
- **Access log**. You can use the Access log to view Application Gateway access patterns and analyze important information. This information includes the caller's IP, requested URL, response latency, return code, and bytes in and out. Access log collection occurs every 60 seconds. This log contains one record per instance of Application Gateway. The `instanceId` property identifies the Application Gateway instance.
178178

179179
- **Firewall log**. You can use the Firewall log to view the requests that are logged through either detection or prevention mode of an application gateway that is configured with the web application firewall. Firewall logs are collected every 60 seconds.
180180

@@ -211,19 +211,21 @@ For Application Gateway and WAF v2 SKU:
211211
|sslEnabled | Whether communication to the backend pools used TLS. Valid values are on and off. |
212212
|sslCipher | Cipher suite being used for TLS communication (if TLS is enabled). |
213213
|sslProtocol | SSL/TLS protocol being used (if TLS is enabled). |
214-
|sslClientVerify | Shows the result of client certificate verification as SUCCESS or FAILED. Failed status will include error information.|
214+
|sslClientVerify | Shows the result of client certificate verification as SUCCESS or FAILED. Failed status includes error information.|
215215
|sslClientCertificateFingerprint|The SHA1 thumbprint of the client certificate for an established TLS connection.|
216216
|sslClientCertificateIssuerName|The issuer DN string of the client certificate for an established TLS connection.|
217217
|serverRouted | The backend server that application gateway routes the request to. |
218218
|serverStatus | HTTP status code of the backend server. |
219219
|serverResponseLatency | Latency of the response (in **seconds**) from the backend server. |
220+
|serverConnectTime | Time spent establishing a connection with an upstream server. |
221+
|serverHeaderTime | Time between establishing a connection to the upstream server and receiving the first byte of the response header. |
220222
|host | Address listed in the host header of the request. If rewritten using header rewrite, this field contains the updated host name. |
221223
|originalRequestUriWithArgs | This field contains the original request URL. |
222224
|requestUri | This field contains the URL after the rewrite operation on Application Gateway. |
223225
|upstreamSourcePort | The source port used by Application Gateway when initiating a connection to the backend target. |
224226
|originalHost | This field contains the original request host name. |
225227
|error_info | The reason for the 4xx and 5xx error. Displays an error code for a failed request. More details in the error code tables in this article. |
226-
|contentType | The type of content or data that is being processed or delivered by the application gateway. |
228+
|contentType | The type of content or data that's being processed or delivered by the application gateway. |
227229

228230
```json
229231
{
@@ -262,6 +264,8 @@ For Application Gateway and WAF v2 SKU:
262264
"serverRouted": "52.239.221.65:443",
263265
"serverStatus": "200",
264266
"serverResponseLatency": "0.028",
267+
"serverConnectTime":"0.008",
268+
"serverHeaderTime":"0.028"
265269
"upstreamSourcePort": "21564",
266270
"originalHost": "20.110.30.194",
267271
"host": "20.110.30.194",
@@ -338,26 +342,26 @@ If the application gateway can't complete the request, it stores one of the foll
338342
| ERRORINFO_HTTP_TO_HTTPS_PORT | The client sent a plain HTTP request to an HTTPS port. |
339343
| ERRORINFO_HTTPS_NO_CERT | Indicates client isn't sending a valid and properly configured TLS certificate during Mutual TLS authentication. |
340344
| ERRORINFO_INVALID_HEADER (4xx) | Indicates that the HTTP request from the client contains a malformed or improperly structured Host header, which prevents the Application Gateway from correctly processing and routing the request to the backend server |
341-
| ERRORINFO_CLIENT_TIMED_OUT | This error indicates that the client terminated the connection because it did not receive a response from the backend server within its configured timeout period. This is typically caused by a backend server that is slow, overloaded, or experiencing operational issues. |
345+
| ERRORINFO_CLIENT_TIMED_OUT | This error indicates that the client terminated the connection because it didn't receive a response from the backend server within its configured timeout period. This is typically caused by a backend server that's slow, overloaded, or experiencing operational issues. |
342346
| ERRORINFO_REQUEST_URI_TOO_LARGE | This error indicates URL in an HTTP request exceeds the maximum length that the server is configured to accept. The default limit on URL length (including query parameters), is 8kb |
343-
| ERRORINFO_REQUEST_HEADER_TOO_LARGE | This error indicates that the total size of the HTTP request headers sent by the client exceeds the 32KB limit enforced by Application Gateway. Please note that this limit is fixed and cannot be customized. |
347+
| ERRORINFO_REQUEST_HEADER_TOO_LARGE | This error indicates that the total size of the HTTP request headers sent by the client exceeds the 32KB limit enforced by Application Gateway. Note that this limit is fixed and can't be customized. |
344348
| ERRORINFO_REQUEST_URI_UNSAFE | This error shows that the WAF found unsafe or malformed content in the request URI. Check the WAF logs to see which rule was triggered and decide if the request was malicious or mistakenly flagged, possibly needing WAF rule adjustments. |
345349
| ERRORINFO_HTTPS_CERT_VERIFY_ERROR | This error is thrown if the client's TLS certificate presented during the Mutual TLS handshake is either invalid or untrusted. |
346350
| ERRORINFO_HTTP_MISDIRECTED_REQUEST | Application Gateway returns Misdirected Request error if the backend server isn't configured to respond to that hostname in the client’s request especially in SSL/TLS scenarios involving Server Name Indication (SNI) |
347-
| ERRORINFO_HTTP_NOT_FOUND | Application Gateway returns Not found error when the backend server cannot find the requested resource. This usually occurs when the requested URL path does not exist on the backend server or there are misconfigurations in routing rules in the Application Gateway, causing requests to be forwarded to the wrong backend pool |
348-
| ERRORINFO_CLIENT_SSL_CERT_ERROR |The Application Gateway encountered a problem with the client's SSL certificate during the TLS handshake, preventing successful authentication. This typically occurs when AppGW is configured for Mutual authentication and the client certificate is not provided |
351+
| ERRORINFO_HTTP_NOT_FOUND | Application Gateway returns Not found error when the backend server can't find the requested resource. This usually occurs when the requested URL path doesn't exist on the backend server or there are misconfigurations in routing rules in the Application Gateway, causing requests to be forwarded to the wrong backend pool |
352+
| ERRORINFO_CLIENT_SSL_CERT_ERROR |The Application Gateway encountered a problem with the client's SSL certificate during the TLS handshake, preventing successful authentication. This typically occurs when AppGW is configured for Mutual authentication and the client certificate isn't provided |
349353

350354
| 5XX Errors | Description |
351355
|:-----------|:------------|
352356
| ERRORINFO_UPSTREAM_NO_LIVE | The application gateway is unable to find any active or reachable backend servers to handle incoming requests. |
353-
| ERRORINFO_EMPTY_BACKEND_POOL | This indicates that the AppGW cannot fulfil the request because the backend pool is empty. |
354-
| ERRORINFO_UPSTREAM_CLOSED_CONNECTION | The backend server closed the connection unexpectedly or before the request was fully processed. This condition could happen due to backend server reaching its limits, crashing etc. |
357+
| ERRORINFO_EMPTY_BACKEND_POOL | This indicates that the AppGW can't fulfill the request because the backend pool is empty. |
358+
| ERRORINFO_UPSTREAM_CLOSED_CONNECTION | The backend server closed the connection unexpectedly or before the request was fully processed. This condition could happen due to backend server reaching its limits, crashing, etc. |
355359
| ERRORINFO_UPSTREAM_TIMED_OUT | The established TCP connection with the server was closed as the connection took longer than the configured timeout value. |
356-
| ERRORINFO_INVALID_HEADER | Application Gateway detected a partial invalid header and forwarded the remaining header to the backend, which responded with 500. Ensure the client's request header does not contain CR, LF, NULL, or similar characters. Replace such characters with SP (whitespace). |
357-
| ERRORINFO_EMPTY_BACKEND_POOL | This indicates that the Application Gateway cannot fulfil the request because the backend pool is empty. |
358-
| ERRORINFO_UPSTREAM_RESPONSE_HEADER_TOO_LARGE | The backend server's HTTP response headers exceed the maximum size that Azure Application Gateway can process. Application Gateway enforces a fixed limit of 32 KB for response headers, and exceeding this limit can result in a 502 Bad Gateway . |
359-
| ERRORINFO_UPSTREAM_NO_RESOLVER | This error indicates that the Virtual Network does not have a DNS resolver configured to translate hostnames into IP addresses |
360-
| ERRORINFO_UPSTREAM_SSL_CERT_VERIFY_ERROR | This error occurs when Application Gateway can't verify the backend certificate due to issues like trust failure, expiration, incomplete chain etc. AppGW will fail the SSL/TLS handshake and mark the backend as unhealthy |
360+
| ERRORINFO_INVALID_HEADER | Application Gateway detected a partial invalid header and forwarded the remaining header to the backend, which responded with 500. Ensure the client's request header doesn't contain CR, LF, NULL, or similar characters. Replace such characters with SP (whitespace). |
361+
| ERRORINFO_EMPTY_BACKEND_POOL | This indicates that the Application Gateway can't fulfill the request because the backend pool is empty. |
362+
| ERRORINFO_UPSTREAM_RESPONSE_HEADER_TOO_LARGE | The backend server's HTTP response headers exceed the maximum size that Azure Application Gateway can process. Application Gateway enforces a fixed limit of 32 KB for response headers, and exceeding this limit can result in a 502 Bad Gateway. |
363+
| ERRORINFO_UPSTREAM_NO_RESOLVER | This error indicates that the Virtual Network doesn't have a DNS resolver configured to translate hostnames into IP addresses |
364+
| ERRORINFO_UPSTREAM_SSL_CERT_VERIFY_ERROR | This error occurs when Application Gateway can't verify the backend certificate due to issues like trust failure, expiration, incomplete chain, etc. AppGW fails the SSL/TLS handshake and mark the backend as unhealthy |
361365
| ERRORINFO_UPSTREAM_SSL_CERT_MISMATCH | This error is caused by a mismatch between the Common Name/SAN in the backend server certificate and the expected hostname in the FQDN configured in the backend pool or specified in the HTTP settings. |
362366
### Firewall log category
363367

@@ -525,4 +529,4 @@ Azure generates activity logs by default. The logs are preserved for 90 days in
525529
## Related content
526530

527531
- See [Monitor Azure Application Gateway](monitor-application-gateway.md) for a description of monitoring Application Gateway.
528-
- See [Monitor Azure resources with Azure Monitor](/azure/azure-monitor/essentials/monitor-azure-resource) for details on monitoring Azure resources.
532+
- See [Monitor Azure resources with Azure Monitor](/azure/azure-monitor/essentials/monitor-azure-resource) for details on monitoring Azure resources.

articles/application-gateway/redirect-http-to-https-cli.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ author: mbender-ms
77
ms.service: azure-application-gateway
88
ms.custom: devx-track-azurecli
99
ms.topic: how-to
10-
ms.date: 04/27/2023
10+
ms.date: 10/06/2025
1111
ms.author: mbender
1212
# Customer intent: As a network engineer, I want to configure an application gateway for HTTP to HTTPS redirection using CLI, so that I can enhance security by ensuring all traffic is encrypted.
1313
---

articles/application-gateway/redirect-http-to-https-portal.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ services: application-gateway
55
author: mbender-ms
66
ms.service: azure-application-gateway
77
ms.topic: how-to
8-
ms.date: 05/19/2023
8+
ms.date: 10/05/2023
99
ms.author: mbender
1010
ms.custom:
1111
- devx-track-azurepowershell

0 commit comments

Comments
 (0)