Share via


Application Gateway-hosting voor meerdere sites

Met hosting voor meerdere sites kunt u meer dan één webtoepassing configureren op dezelfde poort van toepassingsgateways met behulp van openbare listeners. Dit stelt u in staat om een efficiëntere topologie voor uw implementaties te configureren door maximaal 100 websites toe te voegen aan één toepassingsgateway. Elke website kan worden omgeleid naar een eigen back-endpool. Drie domeinen - contoso.com, fabrikam.com en adatum.com - wijzen bijvoorbeeld naar het IP-adres van de toepassingsgateway. U maakt dat drie listeners voor meerdere sites, en configureert elke listener voor de respectieve poort en protocolinstelling.

U kunt ook hostnamen met jokertekens definiëren in een listener voor meerdere sites (maximaal vijf hostnamen per listener). Zie hostnamen met jokertekens in listener voor meer informatie.

Een toepassingsgateway voor meerdere sites maken

Belangrijk

Regels worden verwerkt in de volgorde waarin ze worden vermeld in de portal voor de v1-SKU. Voor v2 SKU gebruikt u regelprioriteit om de verwerkingsvolgorde op te geven. Het is raadzaam om eerst listeners voor meerdere locaties te configureren voordat u een basislistener configureert. Dit zorgt ervoor dat verkeer naar de juiste back-end wordt geleid. Als een basislistener als eerste wordt weergegeven en overeenkomt met een inkomende aanvraag, wordt deze door die listener verwerkt.

Aanvragen voor http://contoso.com worden gerouteerd naar ContosoServerPool en aanvragen voor http://fabrikam.com worden gerouteerd naar FabrikamServerPool.

Op dezelfde manier kunt u meerdere subdomeinen van hetzelfde bovenliggende domein hosten op dezelfde implementatie van de toepassingsgateway. U kunt bijvoorbeeld een implementatie van één toepassingsgateway hosten http://blog.contoso.com en http://app.contoso.com uitvoeren.

Evaluatievolgorde voor routeringsregels aanvragen

Wanneer u listeners voor meerdere sites gebruikt om ervoor te zorgen dat het clientverkeer naar de nauwkeurige back-end wordt gerouteerd, is het belangrijk dat de regels voor aanvraagroutering in de juiste volgorde aanwezig zijn. Als u bijvoorbeeld 2 listeners hebt met gekoppelde hostnamen van *.contoso.com en shop.contoso.com, moet de listener met de shop.contoso.com hostnaam worden verwerkt voordat de listener met *.contoso.com. Als de listener eerst *.contoso.com wordt verwerkt, wordt er geen clientverkeer ontvangen door de specifiekere shop.contoso.com listener.

De volgorde van regels kan worden vastgesteld door een prioriteitsveldwaarde op te geven aan de regels voor aanvraagroutering die aan de listeners zijn gekoppeld. U kunt een geheel getal opgeven van 1 tot 20000, waarbij 1 de hoogste prioriteit heeft en 20000 de laagste. Als binnenkomend clientverkeer overeenkomt met meerdere listeners, wordt de regel voor aanvraagroutering met de hoogste prioriteit gebruikt om de aanvraag te verwerken. Elke regel voor aanvraagroutering moet een unieke prioriteitswaarde hebben.

Het prioriteitsveld heeft alleen invloed op de volgorde van evaluatie van een regel voor aanvraagroutering. Hierdoor wordt de volgorde van evaluatie van padregels binnen een PathBasedRouting regel voor aanvraagroutering niet gewijzigd.

Notitie

Als u regelprioriteit wilt gebruiken, moet u veldwaarden voor regelprioriteit opgeven voor alle bestaande regels voor aanvraagroutering. Zodra het veld regelprioriteit in gebruik is, moet elke nieuwe regel die wordt gemaakt een veldwaarde voor de regelprioriteit hebben als onderdeel van de configuratie.

Belangrijk

Vanaf API-versie 2021-08-01 is het veld regelprioriteit een verplicht veld in de regels voor aanvraagroutering. Waarden voor regelprioriteitsvelden voor bestaande regels voor aanvraagroutering, op basis van de huidige volgorde van evaluatie als onderdeel van de eerste PUT-aanroep, automatisch worden ingevuld als er configuratie-updates worden toegepast met API-versie 2021-08-01 en hoger, portal, Azure PowerShell en Azure CLI. Toekomstige updates voor het aanvragen van routeringsregels moeten het veld regelprioriteit hebben opgegeven als onderdeel van de configuratie.

Hostnamen met jokertekens in listener

Application Gateway staat routering op basis van een host toe met behulp van HTTP(S)-listener(s) voor meerdere sites. U kunt nu jokertekens gebruiken, zoals sterretje (*) en vraagteken (?) in de hostnaam, en maximaal 5 hostnamen per HTTP(S)-listener voor meerdere sites. Bijvoorbeeld: *.contoso.com.

Met behulp van een jokerteken in de hostnaam kunt u meerdere hostnamen in één listener vergelijken. Kan bijvoorbeeld *.contoso.com overeenkomen met ecom.contoso.com, b2b.contoso.com enzovoort customer1.b2b.contoso.com . Met behulp van een matrix met hostnamen kunt u meer dan één hostnaam voor een listener configureren om aanvragen naar een back-endpool te routeren. Een listener kan bijvoorbeeld bevatten contoso.com, fabrikam.com die aanvragen accepteert voor beide hostnamen.

Jokertekenlistener

Notitie

Deze functie is alleen beschikbaar voor Standard_v2 en WAF_v2 SKU van Application Gateway.

In Azure PowerShell moet u in -HostNames plaats van -HostName. Met HostNames kunt u maximaal vijf hostnamen vermelden als door komma's gescheiden waarden en jokertekens gebruiken. Bijvoorbeeld: -HostNames "*.contoso.com","*.fabrikam.com".

In Azure CLI moet --host-names u in plaats van --host-name. Met hostnamen kunt u maximaal vijf hostnamen vermelden als door komma's gescheiden waarden en jokertekens gebruiken. Bijvoorbeeld: --host-names "*.contoso.com,*.fabrikam.com".

In Azure Portal, onder de listener voor meerdere sites, moet u het hosttype Meerdere/jokertekens kiezen om maximaal vijf hostnamen met toegestane jokertekens te vermelden.

Gebruikersinterface voor jokertekens

Toegestane tekens in het veld hostnamen

  • (A-Z,a-z,0-9) - alfanumerieke tekens
  • - - afbreekstreepje of minteken
  • . - punt als scheidingsteken
  • * - kan overeenkomen met meerdere tekens in het toegestane bereik
  • ? - kan overeenkomen met één teken in het toegestane bereik

Voorwaarden voor het gebruik van jokertekens en meerdere hostnamen in een listener

  • U kunt maximaal 5 hostnamen in één listener vermelden
  • Sterretje * kan slechts eenmaal worden vermeld in een onderdeel van een domeinnaam of hostnaam. Bijvoorbeeld component1*.component2*.component3. (*.contoso-*.com) is geldig.
  • Er kunnen maximaal twee sterretjes * in een hostnaam staan. Is bijvoorbeeld *.contoso.* geldig en *.contoso.*.*.com is ongeldig.
  • Er mogen maximaal vier jokertekens in een hostnaam staan. Zijn bijvoorbeeld ????.contoso.comw??.contoso*.edu.* geldig, maar ????.contoso.* zijn ongeldig.
  • Het gebruik van een sterretje * en vraagteken ? in een onderdeel van een hostnaam (*? of ?* ) **is ongeldig. En zijn bijvoorbeeld *?.contoso.com **.contoso.com ongeldig.

Overwegingen en beperkingen voor het gebruik van jokertekens of meerdere hostnamen in een listener

  • Voor SSL-beëindiging en end-to-end SSL moet u het protocol configureren als HTTPS en een certificaat uploaden dat moet worden gebruikt in de listenerconfiguratie. Als het een listener voor meerdere sites is, kunt u ook de hostnaam invoeren, meestal is dit de CN van het SSL-certificaat. Wanneer u meerdere hostnamen opgeeft in de listener of jokertekens gebruikt, moet u rekening houden met het volgende:
    • Als het een hostnaam met jokertekens is, zoals *.contoso.com, moet u een jokertekencertificaat uploaden met CN, zoals *.contoso.com
    • Als er meerdere hostnamen in dezelfde listener worden vermeld, moet u een SAN-certificaat (alternatieve onderwerpnamen) uploaden met de CN's die overeenkomen met de vermelde hostnamen.
  • U kunt geen reguliere expressie gebruiken om de hostnaam te vermelden. U kunt alleen jokertekens zoals sterretje (*) en vraagteken (?) gebruiken om het hostnaampatroon te vormen.
  • Voor de back-endstatuscontrole kunt u niet meerdere aangepaste tests per HTTP-instellingen koppelen. In plaats daarvan kunt u een van de websites op de back-end testen of '127.0.0.1' gebruiken om de localhost van de back-endserver te testen. Wanneer u echter jokertekens of meerdere hostnamen in een listener gebruikt, worden de aanvragen voor alle opgegeven domeinpatronen doorgestuurd naar de back-endpool, afhankelijk van het regeltype (basis- of padgebaseerd).
  • De eigenschap hostnaam neemt één tekenreeks als invoer, waarbij u slechts één niet-jokertekendomeinnaam kunt vermelden. De eigenschap hostnamen neemt een matrix van tekenreeksen als invoer, waar u maximaal vijf jokertekens kunt vermelden. Beide eigenschappen kunnen niet tegelijk worden gebruikt.

Zie Create multi-site using Azure PowerShell or using Azure CLI (Engelstalig) voor de stapsgewijze handleiding voor het configureren van hostnamen met jokertekens in een listener voor meerdere sites.

Listener voor meerdere sites voor listeners van TLS- en TCP-protocollen

De functie voor meerdere sites is ook beschikbaar voor de Layer4-proxy, maar alleen voor de TLS-listeners. U kunt het verkeer voor elke toepassing omleiden naar de back-endpool door domeinnamen op te geven in de TLS-listener. Voor het functioneren van de functie voor meerdere locaties op TLS-listeners gebruikt Application Gateway de SNI-waarde (Server Name Indication) (de clients presenteren voornamelijk SNI-extensie om het juiste TLS-certificaat op te halen). Een TLS-listener voor meerdere locaties kiest deze SNI-waarde uit de TLS-handshakegegevens van een binnenkomende verbinding en route die verbinding met de juiste back-endpool. De TCP-verbinding heeft inherent geen concept van hostnaam of domeinnaam; daarom is dit niet beschikbaar voor TCP-listeners.

Hostheaders en Servernaamindicatie (SNI)

Er zijn drie algemene mechanismen voor het inschakelen van hosting op meerdere sites op dezelfde infrastructuur.

  1. Het is mogelijk meerdere webtoepassingen te hosten, elk op een uniek IP-adres.
  2. Gebruik de hostnaam voor het hosten van meerdere webtoepassingen op hetzelfde IP-adres.
  3. Gebruik verschillende poorten voor het hosten van meerdere webtoepassingen op hetzelfde IP-adres.

Application Gateway ondersteunt momenteel één openbaar IP-adres waar naar verkeer wordt geluisterd. Daarom worden meerdere toepassingen, elk met een eigen IP-adres, momenteel niet ondersteund.

Application Gateway ondersteunt meerdere toepassingen die elk op verschillende poorten luisteren, maar voor dit scenario moeten de toepassingen verkeer accepteren op niet-standaardpoorten.

Application Gateway maakt gebruik van HTTP 1.1-hostheaders voor het hosten van meer dan één website op hetzelfde openbare IP-adres en dezelfde poort. De sites die worden gehost op de toepassingsgateway kunnen ook TLS-offload ondersteunen met de SNI-extensie (Server Name Indication). Dit scenario houdt in dat de clientbrowser en back-end-webfarm de HTTP/1.1- en TLS-extensie moeten ondersteunen zoals gedefinieerd in RFC 6066.

Volgende stappen

Meer informatie over het configureren van hosting voor meerdere sites in Application Gateway

Zie Resource Manager-sjabloon met meerdere sitehosting voor een end-to-end implementatie op basis van sjablonen.