Řešení běžných problémů se službou Azure Front Door
Tento článek popisuje, jak řešit běžné problémy se směrováním, se kterými se můžete setkat při konfiguraci služby Azure Front Door.
Můžete požádat službu Azure Front Door, aby vrátila hlavičky odpovědi HTTP navíc pro ladění. Další informace najdete v volitelných hlavičkách odpovědi.
- Pravidelné požadavky odeslané do back-endu bez toho, že by prošly službou Azure Front Door, úspěšně probíhají. Při procházení služby Azure Front Door dojde k chybám 503 nebo 504.
- Selhání služby Azure Front Door se obvykle objeví přibližně po 30 sekundách.
- Přerušované chyby 503 se zobrazují s chybovou informací OriginInvalidResponse.
Příčinou tohoto problému může být jedna ze tří věcí:
- Váš původ trvá déle, než je časový limit nakonfigurovaný pro příjem požadavku ze služby Azure Front Door. Výchozí časový limit je 30 sekund.
- Doba, kterou trvá odeslání odpovědi na požadavek ze služby Azure Front Door, trvá déle než hodnota časového limitu.
- Klient odeslal požadavek na rozsah bajtů s hlavičkou Accept-Encoding , což znamená, že je povolená komprese.
Odešlete požadavek přímo do vašeho zdroje bez použití služby Azure Front Door. Podívejte se, jak dlouho obvykle trvá, než váš zdroj odpoví.
Odešlete požadavek přes Azure Front Door a zjistěte, jestli se vám zobrazují nějaké 503 odpovědi. Pokud ne, problém nemusí souviset s vypršením časového limitu. Vytvořte žádost o podporu pro další řešení problému.
Pokud požadavky procházející službou Azure Front Door způsobí kód odpovědi na chybu 503, nakonfigurujte časový limit odpovědi origin pro Službu Azure Front Door. Výchozí časový limit můžete prodloužit až na 4 minuty (240 sekund). Nastavení nakonfigurujete tak, že přejdete na stránku přehledu profilu služby Front Door. Vyberte časový limit odpovědi Origin a zadejte hodnotu mezi 16 a 240 sekund.
Poznámka
Možnost konfigurovat vypršení časového limitu odpovědi origin je dostupná jenom ve službě Azure Front Door Standard/Premium.
Pokud zvýšení časového limitu problém nevyřeší, použijte nástroj, jako je Fiddler nebo nástroj pro vývojáře v prohlížeči, a zkontrolujte, zda klient odesílá požadavky na rozsah bajtů s hlavičkami Accept-Encoding. Použití této možnosti vede k tomu, že zdroj reaguje s různými délkami obsahu.
Pokud klient odesílá požadavky na rozsah bajtů s hlavičkami Accept-Encoding , máte dvě možnosti. První možností je zakázat kompresi na serveru původu nebo ve službě Azure Front Door. Druhou možností je vytvořit pravidlo sady pravidel pro odebrání funkce Accept-Encoding z požadavku na požadavky na rozsah bajtů.
- Odpovědi 503 jsou vráceny pouze pro koncové body služby Azure Front Door, které jsou povoleny pro HTTPS.
- Pravidelné požadavky odeslané na backend bez použití služby Azure Front Door jsou úspěšné. Při použití Azure Front Door dochází k chybovým odpovědím 503.
- Přerušované chyby 503 se zobrazují s informací o chybě OriginInvalidResponse.
Příčinou tohoto problému může být jedna ze tří věcí:
- Back-end je IP adresa.
- Back-endový server vrátí certifikát, který neodpovídá plně kvalifikovanému názvu domény (FQDN) back-endu služby Azure Front Door.
- Back-end je server Azure Web Apps.
Back-end je IP adresa.
EnforceCertificateNameCheck
musí být zakázaná.Azure Front Door má přepínač s názvem
EnforceCertificateNameCheck
. Toto nastavení je ve výchozím nastavení povoleno. Pokud je tato možnost povolená, Azure Front Door zkontroluje, zda plně kvalifikovaný název domény hostitele back-endu odpovídá názvu certifikátu serveru back-endu nebo jedné z položek v rozšíření alternativních názvů subjektu.Jak zakázat
EnforceCertificateNameCheck
na webu Azure Portal:Na portálu můžete toto nastavení zapnout nebo vypnout pomocí přepínače v podokně návrhu služby Azure Front Door (Classic).
U úrovně Azure Front Door Standard a Premium se toto nastavení nachází v nastavení původu, když přidáte zdroj do skupiny původu nebo nakonfigurujete trasu.
Backendový server vrátí certifikát, který neodpovídá FQDN back-endu služby Azure Front Door. Pokud chcete tento problém vyřešit, máte dvě možnosti:
- Vrácený certifikát musí odpovídat plně kvalifikovanému názvu domény.
-
EnforceCertificateNameCheck
musí být zakázaná.
Back-end je server Azure Web Apps:
- Zkontrolujte, jestli je webová aplikace Azure nakonfigurovaná s protokolem SSL založeným na PROTOKOLU IP místo toho, aby byla založená na SNI (označení názvu serveru). Pokud je webová aplikace nakonfigurovaná jako založená na IP adrese, měla by se změnit na SNI.
- Pokud back-end není v pořádku kvůli selhání certifikátu, vrátí se chybová zpráva 503. Stav back-endů můžete ověřit na portech 80 a 443. Pokud není v pořádku jenom 443, pravděpodobně se jedná o problém s protokolem SSL. Vzhledem k tomu, že backend je nakonfigurovaný tak, aby používal plně kvalifikovaný název domény (FQDN), víme, že odesílá SNI.
Pomocí nástroje OPENSSL ověřte certifikát, který byl vrácen. Chcete-li to provést, připojte se k back-endu pomocí
-servername
. Měl by vrátit SNI, který se musí shodovat s plně kvalifikovaným názvem domény backendového fondu.openssl s_client -connect backendvm.contoso.com:443 -servername backendvm.contoso.com
- Vytvořili jste instanci služby Azure Front Door. Požadavek na hostitele domény nebo front-endu vrátí stavový kód HTTP 400.
- Vytvořili jste mapování DNS (server názvů domén) pro vlastní doménu na frontendového hostitele, kterého jste nakonfigurovali. Odeslání požadavku na vlastní doménové jméno hostitele vrátí stavový kód HTTP 400. Zdá se, že se nenasměruje na back-end, který jste nakonfigurovali.
K tomuto problému dochází, pokud jste nekonfigurovali pravidlo směrování pro vlastní doménu přidanou jako hostitele front-endu. Pro tohoto hostitele front-endu je potřeba explicitně přidat pravidlo směrování. Pravidlo musíte vytvořit, i když už bylo nakonfigurované směrovací pravidlo pro front-end hostitele pod subdoménou služby Azure Front Door, což je *.azurefd.net.
Přidejte pravidlo směrování pro vlastní doménu, které bude směrovat provoz do vybrané skupiny původu.
Azure Front Door má pravidlo směrování, které přesměruje HTTP na HTTPS, ale přístup k doméně stále udržuje protokol HTTP.
K tomuto chování může dojít, pokud jste správně nenakonfigurovali pravidla směrování pro Službu Azure Front Door. Aktuální konfigurace není specifická a může mít konfliktní pravidla.
Vytvořili jste instanci Azure Front Door Standard/Premium a nakonfigurovali jste:
- Hostitel frontendu.
- Skupina původu s alespoň jedním původem.
- Pravidlo směrování, které připojí hostitele front-endu ke skupině původu.
Zdá se, že váš obsah není dostupný, když požadavek přejde na nakonfigurovaného hostitele front-endu, protože se vrátí stavový kód HTTP 411.
Odpovědi na tyto požadavky mohou také obsahovat chybovou stránku HTML v textu odpovědi, která obsahuje vysvětlující prohlášení. Příkladem je chyba HTTP 411. Požadavek musí být dávkovaný nebo musí mít délku obsahu.
Existuje několik možných příčin tohoto příznaku. Celkovým důvodem je, že váš požadavek HTTP není plně kompatibilní se standardem RFC.
Příkladem nedodržení předpisů je POST
odeslaný požadavek bez hlavičky Content-Length nebo Transfer-Encoding. Příklad by používal curl -X POST https://example-front-door.domain.com
. Tato žádost nesplňuje požadavky stanovené v dokumentu RFC 7230. Azure Front Door by ho zablokoval s odpovědí HTTP 411. Tyto požadavky se nezaprotokolují.
Toto chování je oddělené od funkcí firewallu webových aplikací (WAF) služby Azure Front Door. V současné době neexistuje způsob, jak toto chování zakázat. Všechny požadavky HTTP musí splňovat požadavky, i když se funkce WAF nepoužívají.
- Ověřte, že vaše požadavky splňují požadavky stanovené v nezbytných dokumentech RFC.
- Poznamenejte si všechny texty zprávy HTML, které se vrátí v odpovědi na vaši žádost. Text zprávy často vysvětluje, jak vaše žádost nedodržuje předpisy.
Zdroj je nakonfigurovaný jako IP adresa. Původ je zdravý, ale odmítá požadavky z Azure Front Door.
Azure Front Door používá název původního hostitele jako hlavičku SNI během SSL handshake. Vzhledem k tomu, že zdroj je nakonfigurovaný jako IP adresa, může být selhání jedním z následujících důvodů:
- Pokud je kontrola názvu certifikátu zakázaná, je možné, že příčinou problému je logika certifikátu původu. Tato logika může odmítnout všechny požadavky, které nemají platnou hlavičku hostitele odpovídající certifikátu.
Změňte původ z IP adresy na plně kvalifikovaný název domény, na který je vystaven platný certifikát, který odpovídá zdrojovému certifikátu.
- Procento požadavků začíná zobrazovat chyby s odpovědí 429: Příliš mnoho požadavků.
- Azure Front Door má výchozí limity přenosové rychlosti platformy. Pokud váš provoz překročí limit, AFD zahájí omezování provozu a vrátí 429 odpovědí.
- Pokud začnete pro svůj legitimní provoz zaznamenávat kódy chyby 429 a potřebujete vyšší kvótu, vytvořte žádost na podporu Azure.
- Přečtěte si, jak vytvořit Front Door.
- Přečtěte si jak vytvořit službu Front Door Standard nebo Premium.