Hosting di più siti in un gateway applicazioneApplication Gateway multiple site hosting

L'hosting di più siti consente di configurare più applicazioni Web nella stessa istanza del gateway applicazione.Multiple site hosting enables you to configure more than one web application on the same application gateway instance. Questa funzionalità consente di configurare una topologia più efficiente per le distribuzioni aggiungendo fino a 20 siti Web a un unico gateway applicazione.This feature allows you to configure a more efficient topology for your deployments by adding up to 20 websites to one application gateway. Ogni sito Web può essere indirizzato al proprio pool back-end.Each website can be directed to its own backend pool. Nell'esempio seguente, il gateway applicazione gestisce il traffico per contoso.com e fabrikam.com da due pool di server back-end denominati ContosoServerPool e FabrikamServerPool.In the following example, application gateway is serving traffic for contoso.com and fabrikam.com from two back-end server pools called ContosoServerPool and FabrikamServerPool.

imageURLroute

Importante

Le regole vengono elaborate nell'ordine in cui sono elencate nel portale.Rules are processed in the order they are listed in the portal. È consigliabile configurare i listener multisito prima di configurare un listener di base.It is highly recommended to configure multi-site listeners first prior to configuring a basic listener. In questo modo il traffico viene indirizzato al back-end appropriato.This will ensure that traffic gets routed to the right back end. Se un listener di base viene elencato per primo e corrisponde a una richiesta in ingresso, sarà tale listener a elaborarla.If a basic listener is listed first and matches an incoming request, it gets processed by that listener.

Le richieste per http://contoso.com vengono instradate a ContosoServerPool, mentre quelle per http://fabrikam.com vengono instradate a FabrikamServerPool.Requests for http://contoso.com are routed to ContosoServerPool, and http://fabrikam.com are routed to FabrikamServerPool.

Analogamente, la stessa distribuzione del gateway applicazione può ospitare due sottodomini dello stesso dominio padre.Similarly two subdomains of the same parent domain can be hosted on the same application gateway deployment. Tra gli esempi dell'uso di sottodomini si possono includere http://blog.contoso.com e http://app.contoso.com ospitati in una singola distribuzione del gateway applicazione.Examples of using subdomains could include http://blog.contoso.com and http://app.contoso.com hosted on a single application gateway deployment.

Intestazioni host e indicazione nome server (SNI)Host headers and Server Name Indication (SNI)

Per abilitare l'hosting di più siti nella stessa infrastruttura sono disponibili tre comuni meccanismi.There are three common mechanisms for enabling multiple site hosting on the same infrastructure.

  1. Ospitare più applicazioni Web con un indirizzo IP univoco per ognuna.Host multiple web applications each on a unique IP address.
  2. Usare il nome host per ospitare più applicazioni Web nello stesso indirizzo IP.Use host name to host multiple web applications on the same IP address.
  3. Usare porte diverse per ospitare più applicazioni Web nello stesso indirizzo IP.Use different ports to host multiple web applications on the same IP address.

Un gateway applicazione ottiene attualmente un singolo indirizzo IP pubblico su cui rimane in ascolto del traffico.Currently an application gateway gets a single public IP address on which it listens for traffic. Di conseguenza, non è attualmente possibile supportare più applicazioni ognuna con il proprio indirizzo IP.Therefore supporting multiple applications, each with its own IP address, is currently not supported. Il gateway applicazione supporta l'hosting di più applicazioni ognuna in ascolto su porte diverse, ma in questo scenario le applicazioni dovrebbero accettare traffico su porte non standard e questa non è in genere una configurazione desiderata.Application Gateway supports hosting multiple applications each listening on different ports but this scenario would require the applications to accept traffic on non-standard ports and is often not a desired configuration. Il gateway applicazione si basa su intestazioni host HTTP 1.1 per ospitare più siti Web nello stesso indirizzo IP pubblico e nella stessa porta.Application Gateway relies on HTTP 1.1 host headers to host more than one website on the same public IP address and port. I siti ospitati nel gateway applicazione possono supportare anche l'offload SSL con l'estensione TLS dell'indicazione nome server (SNI).The sites hosted on application gateway can also support SSL offload with Server Name Indication (SNI) TLS extension. In questo scenario il browser client e la Web farm back-end devono quindi supportare HTTP/1.1 e l'estensione TLS definita nella specifica RFC 6066.This scenario means that the client browser and backend web farm must support HTTP/1.1 and TLS extension as defined in RFC 6066.

Elemento di configurazione del listenerListener configuration element

L'elemento di configurazione HTTPListener esistente è stato migliorato per supportare gli elementi del nome host e dell'indicazione nome server usati dal gateway applicazione per instradare il traffico al pool back-end appropriato.Existing HTTPListener configuration element is enhanced to support host name and server name indication elements, which is used by application gateway to route traffic to appropriate backend pool. L'esempio di codice seguente è il frammento dell'elemento HttpListeners del file modello.The following code example is the snippet of HttpListeners element from template file.

"httpListeners": [
    {
        "name": "appGatewayHttpsListener1",
        "properties": {
            "FrontendIPConfiguration": {
                "Id": "/subscriptions/<subid>/resourceGroups/<rgName>/providers/Microsoft.Network/applicationGateways/applicationGateway1/frontendIPConfigurations/DefaultFrontendPublicIP"
            },
            "FrontendPort": {
                "Id": "/subscriptions/<subid>/resourceGroups/<rgName>/providers/Microsoft.Network/applicationGateways/applicationGateway1/frontendPorts/appGatewayFrontendPort443'"
            },
            "Protocol": "Https",
            "SslCertificate": {
                "Id": "/subscriptions/<subid>/resourceGroups/<rgName>/providers/Microsoft.Network/applicationGateways/applicationGateway1/sslCertificates/appGatewaySslCert1'"
            },
            "HostName": "contoso.com",
            "RequireServerNameIndication": "true"
        }
    },
    {
        "name": "appGatewayHttpListener2",
        "properties": {
            "FrontendIPConfiguration": {
                "Id": "/subscriptions/<subid>/resourceGroups/<rgName>/providers/Microsoft.Network/applicationGateways/applicationGateway1/frontendIPConfigurations/appGatewayFrontendIP'"
            },
            "FrontendPort": {
                "Id": "/subscriptions/<subid>/resourceGroups/<rgName>/providers/Microsoft.Network/applicationGateways/applicationGateway1/frontendPorts/appGatewayFrontendPort80'"
            },
            "Protocol": "Http",
            "HostName": "fabrikam.com",
            "RequireServerNameIndication": "false"
        }
    }
],

Per una distribuzione basata su modello end-to-end, vedere il modello di Resource Manager con hosting di più siti.You can visit Resource Manager template using multiple site hosting for an end to end template-based deployment.

Regola di routingRouting rule

Nella regola di routing non è necessaria alcuna modifica.There is no change required in the routing rule. È ancora necessario scegliere la regola di routing "Basic" per collegare il listener del sito appropriato al pool di indirizzi back-end corrispondente.The routing rule 'Basic' should continue to be chosen to tie the appropriate site listener to the corresponding backend address pool.

"requestRoutingRules": [
{
    "name": "<ruleName1>",
    "properties": {
        "RuleType": "Basic",
        "httpListener": {
            "id": "/subscriptions/<subid>/resourceGroups/<rgName>/providers/Microsoft.Network/applicationGateways/applicationGateway1/httpListeners/appGatewayHttpsListener1')]"
        },
        "backendAddressPool": {
            "id": "/subscriptions/<subid>/resourceGroups/<rgName>/providers/Microsoft.Network/applicationGateways/applicationGateway1/backendAddressPools/ContosoServerPool')]"
        },
        "backendHttpSettings": {
            "id": "/subscriptions/<subid>/resourceGroups/<rgName>/providers/Microsoft.Network/applicationGateways/applicationGateway1/backendHttpSettingsCollection/appGatewayBackendHttpSettings')]"
        }
    }

},
{
    "name": "<ruleName2>",
    "properties": {
        "RuleType": "Basic",
        "httpListener": {
            "id": "/subscriptions/<subid>/resourceGroups/<rgName>/providers/Microsoft.Network/applicationGateways/applicationGateway1/httpListeners/appGatewayHttpListener2')]"
        },
        "backendAddressPool": {
            "id": "/subscriptions/<subid>/resourceGroups/<rgName>/providers/Microsoft.Network/applicationGateways/applicationGateway1/backendAddressPools/FabrikamServerPool')]"
        },
        "backendHttpSettings": {
            "id": "/subscriptions/<subid>/resourceGroups/<rgName>/providers/Microsoft.Network/applicationGateways/applicationGateway1/backendHttpSettingsCollection/appGatewayBackendHttpSettings')]"
        }
    }

}
]

Passaggi successiviNext steps

Dopo aver acquisito familiarità con l'hosting di più siti, vedere Creare un gateway applicazione per l'hosting di più applicazioni Web per creare un gateway applicazione con supporto di più applicazioni Web.After learning about multiple site hosting, go to create an application gateway using multiple site hosting to create an application gateway with ability to support more than one web application.