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-components.md
+5-5Lines changed: 5 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ services: application-gateway
5
5
author: abshamsft
6
6
ms.service: application-gateway
7
7
ms.topic: conceptual
8
-
ms.date: 02/20/2019
8
+
ms.date: 07/20/2020
9
9
ms.author: absha
10
10
---
11
11
@@ -64,13 +64,13 @@ There are two types of listeners:
64
64
65
65
-**Basic**. This type of listener listens to a single domain site, where it has a single DNS mapping to the IP address of the application gateway. This listener configuration is required when you host a single site behind an application gateway.
66
66
67
-
-**Multi-site**. This listener configuration is required when you configure more than one web application on the same application gateway instance. It allows you to configure a more efficient topology for your deployments by adding up to 100 websites to one application gateway. Each website can be directed to its own backend pool. For example, three subdomains, abc.contoso.com, xyz.contoso.com, and pqr.contoso.com, point to the IP address of the application gateway. You'd create three multi-site listeners and configure each listener for the respective port and protocol setting.
67
+
-**Multi-site**. This listener configuration is required when you want to configure routing based on host name or domain name for more than one web application on the same application gateway. It allows you to configure a more efficient topology for your deployments by adding up to 100+ websites to one application gateway. Each website can be directed to its own backend pool. For example, three domains, contoso.com, fabrikam.com, and adatum.com, point to the IP address of the application gateway. You'd create three [multi-site listeners](multiple-site-overview.md) and configure each listener for the respective port and protocol setting.
68
68
69
-
For more information, see [Multiple-site hosting](application-gateway-web-app-overview.md).
69
+
You can also define wildcard host names in a multi-site listener and up to 5 host names per listener. To learn more, see [wildcard host names in listener (preview)](multiple-site-overview.md#wildcard-host-names-in-listener-(preview)).
70
70
71
-
After you create a listener, you associate it with a request routing rule. This rule determines how the request received on the listener should be routed to the backend.
71
+
For more information on how to configure a multi-site listener, see [Multiple-site hosting in Application Gateway using Azure portal](create-multiple-sites-portal.md).
72
72
73
-
Application Gateway processes listeners in the [order shown](configuration-overview.md#order-of-processing-listeners).
73
+
After you create a listener, you associate it with a request routing rule. This rule determines how the request received on the listener should be routed to the backend. The request routing rule also contains the backend pool to be routed to and the HTTP setting where the backend port, protocol, etc. are mentioned.
Copy file name to clipboardExpand all lines: articles/application-gateway/configuration-overview.md
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ services: application-gateway
5
5
author: vhorne
6
6
ms.service: application-gateway
7
7
ms.topic: conceptual
8
-
ms.date: 03/24/2020
8
+
ms.date: 07/20/2020
9
9
ms.author: absha
10
10
---
11
11
@@ -141,7 +141,7 @@ When you create a new listener, you choose between [*basic* and *multi-site*](ht
141
141
142
142
- If you want all of your requests (for any domain) to be accepted and forwarded to backend pools, choose basic. Learn [how to create an application gateway with a basic listener](https://docs.microsoft.com/azure/application-gateway/quick-create-portal).
143
143
144
-
- If you want to forward requests to different backend pools based on the *host* header or hostname, choose multi-site listener, where you must also specify a hostname that matches with the incoming request. This is because Application Gateway relies on HTTP 1.1 host headers to host more than one website on the same public IP address and port.
144
+
- If you want to forward requests to different backend pools based on the *host* header or host names, choose multi-site listener, where you must also specify a host name that matches with the incoming request. This is because Application Gateway relies on HTTP 1.1 host headers to host more than one website on the same public IP address and port. To learn more, see [hosting multiple sites using Application Gateway](multiple-site-overview.md).
2. For Azure to communicate between the resources that you create, it needs a virtual network. You can either create a new virtual network or use an existing one. In this example, you'll create a new virtual network at the same time that you create the application gateway. Application Gateway instances are created in separate subnets. You create two subnets in this example: one for the application gateway, and another for the backend servers.
52
52
@@ -62,7 +62,7 @@ Sign in to the Azure portal at [https://portal.azure.com](https://portal.azure.c
62
62
63
63
Select **OK** to close the **Create virtual network** window and save the virtual network settings.
64
64
65
-

4. On the **Backends** tab, select **Next: Configuration**.
98
98
@@ -113,9 +113,12 @@ On the **Configuration** tab, you'll connect the frontend and backend pools you
113
113
-**Listener type**: Multiple sites
114
114
-**Host name**: **www.contoso.com**
115
115
116
+
>[!NOTE]
117
+
> With Application Gateway or WAF v2 SKU, you can also configure up to 5 host names per listener and you can use wildcard characters in the host name. See [wildcard host names in listener](multiple-site-overview.md#wildcard-host-names-in-listener-(preview)) for more information.
118
+
116
119
Accept the default values for the other settings on the **Listener** tab, then select the **Backend targets** tab to configure the rest of the routing rule.
117
120
118
-

Copy file name to clipboardExpand all lines: articles/application-gateway/features.md
+4-4Lines changed: 4 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -79,13 +79,13 @@ For more information, see [URL Path Based Routing overview](url-route-overview.m
79
79
80
80
## Multiple-site hosting
81
81
82
-
Multiple-site hosting enables you to configure more than one web site on the same application gateway instance. This feature allows you to configure a more efficient topology for your deployments by adding up to 100 web sites to one Application Gateway (for optimal performance). Each web site can be directed to its own pool. For example, application gateway can serve traffic for `contoso.com` and `fabrikam.com` from two server pools called ContosoServerPool and FabrikamServerPool.
82
+
With Application Gateway, you can configure routing based on host name or domain name for more than one web application on the same application gateway. It allows you to configure a more efficient topology for your deployments by adding up to 100+ websites to one application gateway. Each website can be directed to its own backend pool. For example, three domains, contoso.com, fabrikam.com, and adatum.com, point to the IP address of the application gateway. You'd create three multi-site listeners and configure each listener for the respective port and protocol setting.
83
83
84
-
Requests for `http://contoso.com` are routed to ContosoServerPool, and `http://fabrikam.com` are routed to FabrikamServerPool.
84
+
Requests for `http://contoso.com` are routed to ContosoServerPool, `http://fabrikam.com` are routed to FabrikamServerPool, and so on.
85
85
86
-
Similarly, two subdomains of the same parent domain can be hosted on the same application gateway deployment. Examples of using subdomains could include `http://blog.contoso.com` and `http://app.contoso.com` hosted on a single application gateway deployment.
86
+
Similarly, two subdomains of the same parent domain can be hosted on the same application gateway deployment. Examples of using subdomains could include `http://blog.contoso.com` and `http://app.contoso.com` hosted on a single application gateway deployment. For more information, see [Application Gateway multiple site hosting](multiple-site-overview.md).
87
87
88
-
For more information, see [Application Gateway multiple site hosting](multiple-site-overview.md).
88
+
You can also define wildcard host names in a multi-site listener and up to 5 host names per listener. To learn more, see [wildcard host names in listener (preview)](multiple-site-overview.md#wildcard-host-names-in-listener-(preview)).
Copy file name to clipboardExpand all lines: articles/application-gateway/multiple-site-overview.md
+54-89Lines changed: 54 additions & 89 deletions
Original file line number
Diff line number
Diff line change
@@ -4,16 +4,18 @@ description: This article provides an overview of the Azure Application Gateway
4
4
services: application-gateway
5
5
author: vhorne
6
6
ms.service: application-gateway
7
-
ms.date: 03/11/2020
7
+
ms.date: 07/20/2020
8
8
ms.author: amsriva
9
9
ms.topic: conceptual
10
10
---
11
11
12
12
# Application Gateway multiple site hosting
13
13
14
-
Multiple site hosting enables you to configure more than one web application on the same port of an application gateway. This feature allows you to configure a more efficient topology for your deployments by adding up to 100 websites to one application gateway. Each website can be directed to its own backend pool. In the following example, application gateway serves traffic for `contoso.com`and `fabrikam.com` from two back-end server pools called ContosoServerPool and FabrikamServerPool.
14
+
Multiple site hosting enables you to configure more than one web application on the same port of an application gateway. It allows you to configure a more efficient topology for your deployments by adding up to 100+ websites to one application gateway. Each website can be directed to its own backend pool. For example, three domains, contoso.com, fabrikam.com, and adatum.com, point to the IP address of the application gateway. You'd create three multi-site listeners and configure each listener for the respective port and protocol setting.
You can also define wildcard host names in a multi-site listener and up to 5 host names per listener. To learn more, see [wildcard host names in listener](#wildcard-host-names-in-listener-(preview)).
> Rules are processed in the order they are listed in the portal for the v1 SKU. For the v2 SKU, exact matches have higher precedence. It is highly recommended to configure multi-site listeners first prior to configuring a basic listener. This will ensure that traffic gets routed to the right back end. If a basic listener is listed first and matches an incoming request, it gets processed by that listener.
@@ -22,6 +24,53 @@ Requests for `http://contoso.com` are routed to ContosoServerPool, and `http://f
22
24
23
25
Similarly, you can host multiple subdomains of the same parent domain on the same application gateway deployment. For example, you can host `http://blog.contoso.com` and `http://app.contoso.com` on a single application gateway deployment.
24
26
27
+
## Wildcard host names in listener (Preview)
28
+
29
+
Application Gateway allows host-based routing using multi-site HTTP(S) listener. Now, you have the ability to use wildcard characters like asterisk (*) and question mark (?) in the host name, and up to 5 host names per multi-site HTTP(S) listener. For example, `*.contoso.com`.
30
+
31
+
Using a wildcard character in the host name, you can match multiple host names in a single listener. For example, `*.contoso.com` can match with `ecom.contoso.com`, `b2b.contoso.com` as well as `customer1.b2b.contoso.com` and so on. Using an array of host names, you can configure more than one host name for a listener, to route requests to a backend pool. For example, a listener can contain `contoso.com, fabrikam.com` which will accept requests for both the host names.
> This feature is in preview and is available only for Standard_v2 and WAF_v2 SKU of Application Gateway. It is not recommended to use this in a production environment. To learn more about previews, see [terms of use here](https://azure.microsoft.com/support/legal/preview-supplemental-terms/).
37
+
38
+
In [Azure portal](create-multiple-sites-portal.md), you can define them in separate text boxes in the host name field.
39
+
40
+
:::image type="content" source="./media/multiple-site-overview/wclexample1.png" alt-text="Wildcard Listener example configuration":::
41
+
42
+
In [Azure PowerShell](tutorial-multiple-sites-powershell.md), you must use `-HostNames` instead of `-HostName`. With HostNames, you can mention up to 5 host names as comma-separated values and use wildcard characters. For example, `-HostNames "*.contoso.com,*.fabrikam.com"`
43
+
44
+
In [Azure CLI](tutorial-multiple-sites-cli.md), you must use `--host-names` instead of `--host-name`. With host-names, you can mention up to 5 host names as comma-separated values and use wildcard characters. For example, `--host-names "*.contoso.com,*.fabrikam.com"`
45
+
46
+
### Allowed characters in the host names field:
47
+
48
+
*`(A-Z,a-z,0-9)` - alphanumeric characters
49
+
*`-` - hyphen or minus
50
+
*`.` - period as a delimiter
51
+
*`*` - can match with multiple characters in the allowed range
52
+
*`?` - can match with a single character in the allowed range
53
+
54
+
### Conditions for using wildcard characters and multiple host names in a listener:
55
+
56
+
* You can only mention up to 5 host names in a single listener
57
+
* Asterisk `*` can be mentioned only once in a component of a domain style name or host name. For example, component1*.component2*.component3. `(*.contoso-*.com)` is valid.
58
+
* There can only be up to two asterisks `*` in a host name. For example, `*.contoso.*` is valid and `*.contoso.*.*.com` is invalid.
59
+
* There can only be a maximum of 4 wildcard characters in a host name. For example, `????.contoso.com`, `w??.contoso*.edu.*` are valid, but `????.contoso.*` is invalid.
60
+
* Using asterisk `*` and question mark `?` together in a component of a host name (`*?` or `?*` or `**`) is invalid. For example, `*?.contoso.com` and `**.contoso.com` are invalid.
61
+
62
+
### Considerations and limitations of using wildcard or multiple host names in a listener:
63
+
64
+
*[SSL termination and End-to-End SSL](ssl-overview.md) requires you to configure the protocol as HTTPS and upload a certificate to be used in the listener configuration. If it is a multi-site listener, you can input the host name as well, usually this is the CN of the SSL certificate. When you are specifying multiple host names in the listener or use wildcard characters, you must consider the following:
65
+
* If it is a wildcard hostname like *.contoso.com, you must upload a wildcard certificate with CN like *.contoso.com
66
+
* If multiple host names are mentioned in the same listener, you must upload a SAN certificate (Subject Alternative Names) with the CNs matching the host names mentioned.
67
+
* You cannot use a regular expression to mention the host name. You can only use wildcard characters like asterisk (*) and question mark (?) to form the host name pattern.
68
+
* For backend health check, you cannot associate multiple [custom probes](application-gateway-probe-overview.md) per HTTP settings. Instead, you can probe one of the websites at the backend or use “127.0.0.1” to probe the localhost of the backend server. However, when you are using wildcard or multiple host names in a listener, the requests for all the specified domain patterns will be routed to the backend pool depending on the rule type (basic or path-based).
69
+
* The properties “hostname" takes one string as input, where you can mention only one non-wildcard domain name and “hostnames” takes an array of strings as input, where you can mention up to 5 wildcard domain names. But both the properties cannot be used at once.
70
+
* You cannot create a [redirection](redirect-overview.md) rule with a target listener which uses wildcard or multiple host names.
71
+
72
+
See [create mutli-site using Azure portal](create-multiple-sites-portal.md) or [using Azure PowerShell](tutorial-multiple-sites-powershell.md) or [using Azure CLI](tutorial-multiple-sites-cli.md) for the step-by-step guide on how to configure wildcard host names in a multi-site listener.
73
+
25
74
## Host headers and Server Name Indication (SNI)
26
75
27
76
There are three common mechanisms for enabling multiple site hosting on the same infrastructure.
@@ -36,92 +85,8 @@ Application Gateway supports multiple applications each listening on different p
36
85
37
86
Application Gateway relies on HTTP 1.1 host headers to host more than one website on the same public IP address and port. The sites hosted on application gateway can also support TLS offload with Server Name Indication (SNI) TLS extension. This scenario means that the client browser and backend web farm must support HTTP/1.1 and TLS extension as defined in RFC 6066.
38
87
39
-
## Listener configuration element
40
-
41
-
Existing HTTPListener configuration elements are enhanced to support host name and server name indication elements. It's used by Application Gateway to route traffic to the appropriate backend pool.
42
-
43
-
The following code example is the snippet of an HttpListeners element from a template file:
You can visit [Resource Manager template using multiple site hosting](https://github.com/Azure/azure-quickstart-templates/blob/master/201-application-gateway-multihosting) for an end to end template-based deployment.
82
-
83
-
## Routing rule
84
-
85
-
There's no change required in the routing rule. The routing rule 'Basic' should continue to be chosen to tie the appropriate site listener to the corresponding backend address pool.
After learning about multiple site hosting, go to [create an application gateway using multiple site hosting](tutorial-multiple-sites-powershell.md)to create an application gateway with ability to support more than one web application.
90
+
After learning about multiple site hosting, go to [create mutli-site using Azure portal](create-multiple-sites-portal.md) or [using Azure PowerShell](tutorial-multiple-sites-powershell.md)or [using Azure CLI](tutorial-multiple-sites-cli.md) for the step-by-step guide on creating an Application Gateway to host multiple websites.
127
91
92
+
You can visit [Resource Manager template using multiple site hosting](https://github.com/Azure/azure-quickstart-templates/blob/master/201-application-gateway-multihosting) for an end to end template-based deployment.
If you prefer, you can complete this procedure using [Azure PowerShell](tutorial-multiple-sites-powershell.md).
32
32
@@ -115,9 +115,13 @@ az network application-gateway address-pool create \
115
115
--name fabrikamPool
116
116
```
117
117
118
-
### Add backend listeners
118
+
### Add listeners
119
119
120
-
Add the backend listeners that are needed to route traffic using [az network application-gateway http-listener create](/cli/azure/network/application-gateway/http-listener#az-network-application-gateway-http-listener-create).
120
+
Add listeners that are needed to route traffic using [az network application-gateway http-listener create](/cli/azure/network/application-gateway/http-listener#az-network-application-gateway-http-listener-create).
121
+
122
+
>[!NOTE]
123
+
> With Application Gateway or WAF v2 SKU, you can also configure up to 5 host names per listener and you can use wildcard characters in the host name. See [wildcard host names in listener](multiple-site-overview.md#wildcard-host-names-in-listener-(preview)) for more information.
124
+
>To use multiple host names and wildcard characters in a listener using Azure CLI, you must use `--host-names` instead of `--host-name`. With host-names, you can mention up to 5 host names as comma-separated values. For example, `--host-names "*.contoso.com,*.fabrikam.com"`
121
125
122
126
```azurecli-interactive
123
127
az network application-gateway http-listener create \
Copy file name to clipboardExpand all lines: articles/application-gateway/tutorial-multiple-sites-powershell.md
+6-2Lines changed: 6 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ services: application-gateway
6
6
author: vhorne
7
7
ms.service: application-gateway
8
8
ms.topic: how-to
9
-
ms.date: 11/14/2019
9
+
ms.date: 07/20/2020
10
10
ms.author: victorh
11
11
ms.custom: mvc
12
12
#Customer intent: As an IT administrator, I want to use Azure PowerShell to configure Application Gateway to host multiple web sites , so I can ensure my customers can access the web information they need.
@@ -26,7 +26,7 @@ In this article, you learn how to:
26
26
> * Create virtual machine scale sets with the backend pools
If you don't have an Azure subscription, create a [free account](https://azure.microsoft.com/free/?WT.mc_id=A261C142F) before you begin.
32
32
@@ -122,6 +122,10 @@ Listeners are required to enable the application gateway to route traffic approp
122
122
123
123
Create the first listener using [New-AzApplicationGatewayHttpListener](/powershell/module/az.network/new-azapplicationgatewayhttplistener) with the frontend configuration and frontend port that you previously created. A rule is required for the listener to know which backend pool to use for incoming traffic. Create a basic rule named *contosoRule* using [New-AzApplicationGatewayRequestRoutingRule](/powershell/module/az.network/new-azapplicationgatewayrequestroutingrule).
124
124
125
+
>[!NOTE]
126
+
> With Application Gateway or WAF v2 SKU, you can also configure up to 5 host names per listener and you can use wildcard characters in the host name. See [wildcard host names in listener](multiple-site-overview.md#wildcard-host-names-in-listener-(preview)) for more information.
127
+
>To use multiple host names and wildcard characters in a listener using Azure PowerShell, you must use `-HostNames` instead of `-HostName`. With HostNames, you can mention up to 5 host names as comma-separated values. For example, `-HostNames "*.contoso.com,*.fabrikam.com"`
Copy file name to clipboardExpand all lines: articles/application-gateway/whats-new.md
+1Lines changed: 1 addition & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -22,6 +22,7 @@ Azure Application Gateway is updated on an ongoing basis. To stay updated with t
22
22
23
23
|Feature |Description |Date added |
24
24
|---------|---------|---------|
25
+
| Wildcard host names in listeners (Preview) | You can now define wildcard host names in a multi-site listener and up to 5 host names per listener. To learn more, see [wildcard host names in listener (preview)](multiple-site-overview.md#wildcard-host-names-in-listener-(preview)) and [host multiple sites in an Application Gateway using Azure portal](create-multiple-sites-portal.md) for the ste-by-step guide. | July 2020 |
25
26
| URL rewrite (Preview) | You can now rewrite URL path and query string parameters using URL rewrite. See [Rewrite HTTP headers and URL](rewrite-http-headers-url.md) to learn more and see [Rewrite URL in Application Gateway using Azure portal](rewrite-url-portal.md) for the step-by-step guide. | July 2020 |
26
27
| Custom port for health probes | Application Gateway v2 SKU now gives the ability to provide a custom port in the health probe configuration. For more information, see [health probe overview](application-gateway-probe-overview.md)| July 2020 |
27
28
| Application Gateway Ingress Controller (AGIC) AKS add-on (Preview) |Application Gateway Ingress Controller can now be deployed as a native AKS add-on in one line through Azure CLI. Being an AKS add-on allows AGIC to become a fully managed service, while still running in the customer's AKS cluster. For more information, see [AGIC add-on differences](ingress-controller-overview.md#difference-between-helm-deployment-and-aks-add-on). |June 2020 |
0 commit comments