Sdílet prostřednictvím


Hostování více webů ve službě Application Gateway

Hostování více webových aplikací umožňuje nakonfigurovat více než jednu aplikaci na stejném portu aplikačních bran pomocí veřejně dostupných naslouchacích procesů. Díky možnosti přidat do jedné služby Application Gateway více než 100 webů můžete nakonfigurovat efektivnější topologii vašich nasazení. Každou stránku lze přesměrovat na vlastní serverový fond. Příklad: na IP adresu služby Application Gateway odkazují tři domény – contoso.com, fabrikam.com a adatum.com. Můžete vytvořit tři naslouchací procesy pro více webů a jednotlivé naslouchací procesy nakonfigurovat pro příslušené nastavení portu a protokolu.

V naslouchači pro více lokalit můžete také definovat zástupné názvy hostů a až 5 hostname na naslouchač. Další informace najdete v zástupných názvech hostitelů u posluchače.

Application Gateway s více lokalitami

Důležité

Pravidla se zpracovávají v pořadí, v jakém jsou uvedené na portálu pro skladovou položku v1. Pro v2 SKU použijte prioritu pravidla k určení pořadí zpracování. Důrazně doporučujeme nakonfigurovat naslouchací pro více lokalit před konfigurací základního naslouchacího. Tím se zajistí, že provoz bude směrován do správného backendu. Pokud je základní listener uveden jako první a odpovídá příchozímu požadavku, tento požadavek zpracuje.

Požadavky na adresu http://contoso.com se směrují na ContosoServerPool a požadavky na adresu http://fabrikam.com na FabrikamServerPool.

Podobně můžete hostovat více subdomén stejné nadřazené domény ve stejném nasazení služby Application Gateway. Můžete například hostovat http://blog.contoso.com a http://app.contoso.com na jednom nasazení služby Application Gateway.

Pořadí vyhodnocování pravidel směrování požadavků

Pokud používáte naslouchače pro více lokalit k zajištění směrování klientského provozu do správného back-endu, je důležité, aby pravidla směrování požadavků byla ve správném pořadí. Pokud máte například 2 nasloucháče s přidruženými názvy hostitelů *.contoso.com a shop.contoso.com, musí být nasloucháč s názvem hostitele shop.contoso.com zpracován před nasloucháčem s názvem *.contoso.com. Pokud je posluchač *.contoso.com zpracován jako první, pak nedojde k přijetí žádného klientského provozu specifičtějším posluchačem shop.contoso.com.

Řazení pravidel lze vytvořit vložením hodnoty pole Priorita pravidlům směrování požadavků přidruženým k nasloucháčům. Můžete zadat celočíselnou hodnotu od 1 do 20000, kdy 1 znamená nejvyšší a 20000 nejnižší prioritu. Pokud příchozí provoz klienta odpovídá více nasloucháčům, pro zpracování požadavku se použije pravidlo směrování s nejvyšší prioritou. Každé pravidlo směrování požadavků musí mít jedinečnou hodnotu priority.

Pole priority má vliv pouze na pořadí vyhodnocení pravidla směrování požadavku. V rámci PathBasedRouting pravidla směrování požadavku se nezmění pořadí vyhodnocování pravidel založených na cestě.

Poznámka:

Pokud chcete použít prioritu pravidla, musíte zadat hodnoty polí priority pravidla pro všechna existující pravidla směrování požadavků. Jakmile je pole priority pravidla používáno, musí mít všechna vytvořená nová pravidla směrování hodnotu pole priority pravidla jako součást konfigurace.

Důležité

Počínaje rozhraním API verze 2021-08-01 je pole priority pravidla povinným polem v pravidlech směrování požadavků. Hodnoty polí priority pravidla pro existující pravidla směrování požadavků na základě aktuálního pořadí vyhodnocení v rámci prvního volání PUT se vyplní automaticky, pokud se nějaké aktualizace konfigurace použijí pomocí rozhraní API verze 2021-08-01 a vyšší, portálu, Azure PowerShellu a Azure CLI. Budoucí aktualizace pravidel směrování požadavků musí mít v rámci konfigurace zadané pole priority pravidla.

Názvy hostitelů se zástupnými znaky v posluchači

Application Gateway umožňuje směrování na základě hostitele pomocí HTTP(S) naslouchacího procesu pro více webů. Teď můžete v názvu hostitele použít zástupné znaky, jako je hvězdička (*) a otazník (?), a až 5 názvů hostitelů na naslouchací proces HTTP(S) pro více webů. Například *.contoso.com.

Pomocí zástupného znaku v názvu hostitele můžete sladit více názvů hostitelů v jednom posluchači. Může se například *.contoso.com shodovat s ecom.contoso.comb2b.contoso.comcustomer1.b2b.contoso.com a tak dále. Pomocí pole názvů hostitelů můžete nakonfigurovat více než jeden název hostitele pro posluchač, abyste mohli směrovat požadavky do back-endového poolu. Například naslouchací proces může obsahovat contoso.com, fabrikam.com, který přijímá požadavky pro oba názvy hostitelů.

Univerzální naslouchací proces

Poznámka:

Tato funkce je dostupná jenom pro Standard_v2 a WAF_v2 skladovou položku služby Application Gateway.

V Azure PowerShellu musíte použít -HostNames místo -HostName. Pomocí názvů hostitelů můžete zmínit až 5 názvů hostitelů jako hodnoty oddělené čárkami a použít zástupné znaky. Například -HostNames "*.contoso.com","*.fabrikam.com".

V Azure CLI musíte použít --host-names místo --host-name. Pomocí názvů hostitelů můžete zmínit až 5 názvů hostitelů jako hodnoty oddělené čárkami a použít zástupné znaky. Například --host-names "*.contoso.com,*.fabrikam.com".

Na portálu Azure, v rámci naslouchacího procesu pro více webů, musíte zvolit typ hostitele Více/Zástupný znak, abyste mohli uvést až pět názvů hostitelů s povolenými zástupnými znaky.

Uživatelské rozhraní pro naslouchání zástupným znakům

Povolené znaky v poli názvů hostitelů

  • (A-Z,a-z,0-9) - alfanumerické znaky
  • - - spojovník nebo minus
  • . - tečka jako oddělovač
  • * - může odpovídat více znakům v povoleném rozsahu.
  • ? - může odpovídat jednomu znaku v povoleném rozsahu.

Podmínky použití zástupných znaků a více názvů hostitelů v posluchači

  • V jediném listeneru můžete zmínit maximálně 5 názvů hostitelů.
  • Hvězdičku * lze zmínit pouze jednou v komponentě názvu stylu domény nebo názvu hostitele. Například component1*.component2*.component3. (*.contoso-*.com) je platný.
  • V názvu hostitele může být až dvě hvězdičky * . Je například *.contoso.* platný a *.contoso.*.*.com je neplatný.
  • V názvu hostitele může být maximálně 4 zástupné znaky. Jsou například ????.contoso.comw??.contoso*.edu.* platné, ale ????.contoso.* jsou neplatné.
  • Použití hvězdičky * a otazníku ? společně v komponentě názvu hostitele (*? nebo ?***) je neplatné. Například *?.contoso.com a **.contoso.com jsou neplatné.
  • Položka *.contoso.com neodpovídá contoso.com, protože *.contoso.com určuje, že se před contoso nachází tečka.

Úvahy a omezení používání zástupných znaků nebo více názvů hostitelů v naslouchacím programu

  • Terminace SSL a End-to-End SSL vyžaduje, abyste nakonfigurovali protokol jako HTTPS a nahráli certifikát, který se má použít v naslouchací konfiguraci. Pokud se jedná o vícewebového naslouchacího klienta, můžete zadat také název hostitele, obvykle se jedná o CN certifikátu SSL. Při zadávání více názvů hostitelů v naslouchacím procesu nebo použití zástupných znaků musíte zvážit následující:
    • Pokud se jedná o zástupný název hostitele, jako je *.contoso.com, musíte nahrát zástupný certifikát s běžným názvem (CN) jako *.contoso.com.
    • Pokud je ve stejném posluchači uvedeno více názvů hostitelů, musíte nahrát certifikát SAN (Alternativní názvy subjektu) s CN odpovídajícími uvedeným názvům hostitelů.
  • Regulární výraz nemůžete použít ke zmínce názvu hostitele. K vytvoření vzoru názvu hostitele můžete použít pouze zástupné znaky, jako je hvězdička (*) a otazník (?).
  • U kontroly stavu back-endu nemůžete přidružit více vlastních sond na nastavení protokolu HTTP. Místo toho můžete testovat jeden z webů v back-endu nebo pomocí 127.0.0.1 testovat místního hostitele back-endového serveru. Pokud však v listeneru používáte zástupný znak nebo více názvů hostitelů, požadavky na všechny zadané vzory domény jsou směrovány do back-endového poolu v závislosti na typu pravidla (základní nebo založené na cestě).
  • Vlastnost "hostname" přijímá jeden řetězec jako vstup, ve kterém můžete uvést pouze jeden název domény bez zástupných znaků. Vlastnost "hostnames" přebírá jako vstup pole řetězců, kde můžete uvést až 5 názvů domén se zástupnými znaky. Obě tyto vlastnosti nelze použít najednou.

Podrobný návod na konfiguraci názvů hostitelů se zástupnými znaky v naslouchacím procesu s více lokalitami najdete v tématu Vytvoření více lokalit pomocí Azure PowerShellu nebo Azure CLI.

Víceprvkový naslouchací proces pro protokoly TLS a TCP.

Funkce s více lokalitami je dostupná také pro proxy vrstvy 4, ale pouze pro její poslecháče TLS. Provoz pro každou aplikaci můžete směrovat do backendového fondu zadáním názvů domén v nasloucháči TLS. Pro fungování funkce pro více webů u TLS listenerů používá Application Gateway hodnotu SNI (Server Name Indication) (klienti primárně prezentují rozšíření SNI k načtení správného certifikátu TLS). Naslouchadlo TLS pro více lokalit by vybralo tuto hodnotu SNI z dat TLS handshake příchozího připojení a směrovalo toto připojení do příslušné back-endové skupiny. Připojení TCP nemá ze své podstaty žádný koncept názvu hostitele nebo domény; proto není k dispozici pro TCP posluchače.

Hlavičky hostitele a Indikace názvu serveru (SNI)

Existují tři běžné mechanismy pro povolení hostování více webů ve stejné infrastruktuře.

  1. Hostování více webových aplikací, z nichž každá je na jedinečné IP adrese.
  2. Použití názvu hostitele k hostování více webových aplikací na stejné IP adrese.
  3. Použití různých portů k hostování více webových aplikací na stejné IP adrese.

Služba Application Gateway v současné době podporuje jednu veřejnou IP adresu, kde naslouchá provozu. Proto se v současné době nepodporuje více aplikací s vlastní IP adresou.

Application Gateway podporuje více aplikací, které naslouchají na různých portech, ale tento scénář vyžaduje, aby aplikace přijímaly provoz na nestandardních portech.

Služba Application Gateway se při hostování více než jednoho webu na stejné veřejné IP adrese a portu spoléhá na hlavičky hostitele HTTP 1.1. Weby hostované na aplikační bráně mohou také podporovat zpracování TLS s rozšířením SNI (Server Name Indication). Tento scénář znamená, že klientský prohlížeč a back-endová webová farma musí podporovat HTTP/1.1 a rozšíření protokolu TLS, jak je definováno v dokumentu RFC 6066.

Další kroky

Informace o konfiguraci hostování více webů ve službě Application Gateway

Podívejte se na šablonu Resource Manageru pro hostování na více webech pro kompletní nasazení od začátku do konce na základě šablony.