← Speed / speed / optimization / protocol
HTTP/2 to Origin
Protokol je soubor pravidel, kterými se řídí výměna nebo přenos dat mezi zařízeními. Jedním z nejdůležitějších protokolů fungujících na vrstvě interakce člověka s počítačem, kde mají aplikace přístup k síťovým službám, je HTTP (Hypertext Transfer Protocol).
HTTP je zavedený protokol s několika verzemi, přičemž každá další verze přidává funkce zlepšující výkon oproti té předchozí. HTTP/1.1 a HTTP/2 jsou dnes na internetu široce rozšířené. HTTP/1.1 existuje již více než deset let, ale v roce 2015 organizace IETF (Internet Engineering Task Force) představila HTTP/2, který přináší řadu funkcí pro zkrácení doby načítání stránek. Více informací o rozdílech mezi HTTP/1.1 a HTTP/2 najdete v HTTP/2 oproti HTTP/1.1 ↗.
Dostupnost
| Free | Pro | Business | Enterprise | |
|---|---|---|---|---|
| Dostupnost | Ano | Ano | Ano | Ano |
Vypněte funkci HTTP/2 to Origin
V Cloudflare je připojení HTTP/2 k origin serveru ve výchozím nastavení zapnuté.
Pokud chcete vypnout HTTP/2 to Origin, postupujte takto:
-
V dashboardu Cloudflare přejděte na Rychlost > Nastavení stránce.
Přejděte na Nastavení ↗ -
Přejděte na Optimalizace protokolu a v části HTTP/2 to Origin nastavte přepínač na Vypnuto.
Multiplexování připojení
Cloudflare podporuje multiplexování HTTP/2 ze své globální edge sítě až k vašim origin serverům. Místo otevírání nového TCP připojení pro každý příchozí požadavek sdílí více streamů HTTP/2 jedno dlouhotrvající TCP připojení. To výrazně snižuje náklady na navazování a ukončování připojení a zvyšuje efektivitu a výkon mezi Cloudflare a vaším origin serverem.
Sloučením velkého množství požadavků do menšího počtu TCP připojení Cloudflare snižuje počet aktivních připojení, která musí váš origin server udržovat. To je zvlášť užitečné pro backendy citlivé na režii spojenou s připojeními nebo na limity zdrojů.
Jak to funguje
Když dorazí nový požadavek, Cloudflare se pokusí znovu použít existující připojení HTTP/2 k origin serveru:
- Pokud připojení nedosáhlo limitu souběžných streamů, Cloudflare multiplexuje požadavek přes stejné připojení.
- Pokud je limit streamů dosažen, Cloudflare podle potřeby otevře nové TCP připojení.
Připojení zůstávají aktivní a opakovaně se využívají, dokud nezůstanou nečinná nebo nedosáhnou limitu souběžnosti.
Životní cyklus připojení
-
Opakované použití připojení: Cloudflare udržuje k vašemu origin serveru trvalá (keep-alive) TCP spojení. Ta se opakovaně využívají, dokud se nedosáhne limitu HTTP/2 streamů nebo dokud spojení nezůstane nečinné.
-
Časový limit nečinnosti (900s): Pokud spojení zůstane nečinné (bez aktivních streamů) po dobu 900 sekund, Cloudflare ho ukončí. Pokus o opětovné použití ukončeného spojení může vést k
520chyba. -
Keep-alive: Cloudflare pravidelně odesílá TCP keep-alive pakety, aby odhalil nereagující origin servery. Po dvou nezodpovězených sondách se spojení resetuje.
- První sonda po ~30 sekundách nečinnosti
- Druhá sonda po 15 sekundách
-
Ukončení připojení: Spojení se může ukončit také z těchto důvodů:
- Rozhodování o vyvažování zátěže
- Údržba datového centra nebo uzlu
- Dosažení maximálního limitu souběžnosti
- Origin server nebo mezilehlá síť ukončuje nečinná spojení
Přínosy
| Výhoda | Popis |
|---|---|
| Méně TCP handshaků | Více požadavků sdílí jedno dlouhotrvající TCP spojení, což omezuje časté navazování a rušení spojení. |
| Nižší latence | Eliminuje opakované handshaky TCP/TLS a snižuje tak round-trip zpoždění u nových požadavků. |
| Nižší zátěž originového serveru | Méně souběžných spojení, která musí origin spravovat, což snižuje zátěž systémů s omezenými prostředky. |
| Adaptivní škálování | Během náhlých nárůstů zátěže (například při failoverech) Cloudflare nejprve využije dostupné streamy a teprve poté podle potřeby otevře nová připojení. |
Výchozí chování podle plánu
| Plán | Výchozí stav | Maximální počet souběžných streamů na spojení | Lze konfigurovat? |
|---|---|---|---|
| Free / Pro / Business | Ve výchozím nastavení zapnuto | 200 | Ne |
| Enterprise | Ve výchozím stavu vypnuto (1 stream na připojení) | 1-200+ | Ano |
- Free/Pro/Business: Multiplexování je automaticky zapnuté. Každé spojení podporuje až 200 souběžných streamů.
- Enterprise: Multiplexování je zpočátku fakticky vypnuté (1 stream). Souběžnost můžete pro danou zónu zapnout a nastavit (až 200 a více souběžných streamů).
Konfigurace
Multiplexování připojení je u zón na plánech Free, Pro a Business ve výchozím stavu zapnuté a standardně využívá až 100 souběžných streamů. U plánu Enterprise můžete v dashboardu nebo přes API pro danou zónu explicitně nastavit maximální počet souběžných streamů, často označovaný jako „multiplexing ratio“.
Dashboard
- Přihlaste se do Cloudflare dashboard ↗ a vyberte svůj účet.
- Vyberte doménu, která bude k serveru Origin používat HTTP/2.
- Vyberte Speed > Optimization.
- Otevřete Optimalizace protokolu kartě.
- V části HTTP/2 to Origin, vyberte Konfigurovat a podle potřeby upravte nastavení streamu.
API
Požadovaná oprávnění API tokenu
Alespoň jeden z následujících oprávnění tokenu je povinné:Zone Settings WriteZone Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/settings/origin_h2_max_streams" \
--request PATCH \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"value": 100
}'Viz Dokumentace API s dalšími informacemi.
Terraform
resource "cloudflare_zone_setting" "example" {
zone_id = "<ZONE_ID>"
setting_id = "origin_h2_max_streams"
value = 50
}Timeouty a chybové kódy
| Podmínka | Výchozí / Range | Kód chyby | Popis |
|---|---|---|---|
| Proxy Read Timeout | 125s (až 6000s pro Enterprise) | 524 |
Origin serveru trvalo příliš dlouho, než odpověděl. |
| Proxy Idle Timeout | 900s (pevné) | 520 |
Připojení bylo ukončeno kvůli nečinnosti. |
| TCP Keep-Alive Interval | 30s zpočátku, 15s mezi sondami | 520 |
Po dvou zmeškaných sondách Cloudflare spojení resetuje. |
| Vypršení časového limitu TCP handshake | 19s | 522 |
Origin server nedokončil SYN handshake. |
| TCP ACK Timeout | 90s | 522 |
Origin server přestal potvrzovat příjem dat. |
Časté scénáře
Failover události
Když se provoz náhle přesune (například během failoveru origin serveru), Cloudflare podle možností znovu využije aktivní připojení. Pokud je dosaženo limitu souběžnosti, otevře nová. Počet aktivních připojení může dočasně vzrůst, celkový počet připojení ale zůstává nižší než bez multiplexování.
Dlouhotrvající nebo nečinné požadavky
- Pokud vaše požadavky přesahují 125 sekund (například streamování), zvyšte Proxy Read Timeout (pouze Enterprise).
- Origin servery, které uzavírají spojení rychleji než za 900 sekund, mohou zaznamenat časté obnovování spojení, Cloudflare ale podle potřeby automaticky navazuje nová spojení.
Možné chyby 5xx
Některé chyby 5xx, například 520 nebo 522, mohou souviset s časovými limity nečinnosti nebo nedostupnými origin servery. Pokud je souběžnost nastavená příliš vysoko pro výkonnostně slabší origin, nárazové vlny současných požadavků ho mohou přetížit a způsobit resety streamů nebo krátké nárůsty chyb 5xx. Zákazníci s plánem Enterprise, kteří se s tímto potýkají, mohou požádat svůj Cloudflare account team nebo podporu o snížení limitu souběžnosti, což omezí počet požadavků odesílaných na origin současně a pomůže zabránit přetížení.
Časté dotazy
Používá Cloudflare pevný poměr multiplexování?
Plány Free, Pro a Business používají 200 souběžných streamů na spojení. Uživatelé s plánem Enterprise mohou nastavit 1-200+ streamů.
Jak Cloudflare škáluje připojení během špiček nebo přepnutí při selhání?
Cloudflare nejprve využije stávající keep-alive připojení. Pokud dosáhnou limitu souběžnosti, otevřou se podle potřeby nová připojení. I při nárazovém zatížení bývá celkový počet připojení nižší než bez multiplexování.
Co když je můj backend citlivý na paralelní požadavky?
Uživatelé s plánem Enterprise mohou snížit limit souběžnosti. Cloudflare také respektuje nastavení vašeho originu pro SETTINGS_MAX_CONCURRENT_STREAMS, což vašemu serveru umožňuje vynucovat přísnější limity. CDN Cloudflare navíc nabízí funkci Cache Locking, která pomáhá předcházet více souběžným požadavkům na váš origin během revalidace. Další informace najdete v Revalidace s dalšími informacemi.
Mohu zvyšovat souběžnost postupně?
Ano. Nastavení HTTP/2 na origin serveru nebo nastavení zóny Cloudflare můžete postupně upravovat a bezpečně tak zvyšovat souběžnost.
Odkud se Cloudflare připojuje k mému originu?
Cloudflare provozuje plochou anycast síť. K vašemu origin serveru se může přímo připojit kterékoli datové centrum, žádná hierarchie L1/L2 neexistuje. Připojení k origin serveru tak mohou přicházet z více datových center po celém světě.
Predehřívá Cloudflare připojení k origin serverům předem?
Ne. Spojení se vytvářejí na vyžádání a podle možností se opakovaně využívají. Trvalý fond nečinných spojení neexistuje.
Jak se spravují nečinná připojení?
Nečinná připojení se po 900 sekundách nečinnosti zavřou. Znovu se neotevírají proaktivně, nová připojení vznikají až s obnovením provozu.
Může Cloudflare ukončovat aktivní TCP připojení?
Pouze pokud je uzavře origin server, dojde k síťové chybě nebo Cloudflare provádí údržbu či přerozdělení zátěže. Pro aktivní spojení neexistuje pevně daná maximální doba trvání.
Kompatibilita protokolů
Pokud origin server nepodporuje HTTP/2, Cloudflare naváže spojení HTTP/1.1. Připojujeme se k serverům, které podporu spojení HTTP/2 oznamují prostřednictvím ALPN ↗.
Pokud si nejste jisti, zda váš server podporuje HTTP/2, doporučujeme zkontrolovat dokumentaci origin serveru nebo použít nástroj pro testování implementace HTTP/2 (například h2spec ↗).