Jak paralelizovat stahování napříč názvy hostitelů

click fraud protection

Některé nástroje pro testování rychlosti připojení mohou doporučovat webům paralelizovat stahování napříč jména hostitelů efektivně poskytovat webový obsah webovým prohlížečům. Toto doporučení se obvykle vyskytuje na webech, které používají protokol HTTP / 1.1, a stane se, když webové prohlížeče omezují počet současných připojení k doméně.

Weby, které mají mnoho HTTP požadavky na statický obsah (například obrázky, CSS soubory a JavaScript) narazit na varování Parallelize Downloads Across Hostnames. Chcete-li toto omezení obejít, nastavte horizontální dělení domén nebo použijte síť pro doručování obsahu (CDN).

Protokol HTTP / 2 se stal hlavním standardem, což činí zastaralou potřebu paralelního stahování. Většina webových hostitelů nyní ve výchozím nastavení používá protokol HTTP / 2 a zpřístupňuje CDN jakéhokoli druhu zdarma. Vzhledem k tomu, že HTTP / 2 nyní preferuje společnost Google, zvažte aktualizaci webu a hostování na HTTPS.

Proč paralelizovat stahování napříč názvy hostitelů?

instagram viewer

Webové prohlížeče mohou otevřít pouze omezený počet souběžných připojení na název hostitele pro weby, které používají protokol HTTP / 1.1. Tento limit může být až šest připojení.

Když je třeba stáhnout více prostředků, musí další prostředky čekat ve frontě nevyřízených položek, dokud nebude k dispozici připojení. Prostředky ve frontě jsou blokovány a zkrácení této doby blokování má za následek rychlejší načítání stránky.

Například pokud má webová stránka 12 obrázků a počet připojení povolených webovým prohlížečem je šest, pak v nevyřízeném stavu musí čekat šest obrázků. Obrázky v nevyřízené položce zůstanou tam, dokud prvních šest obrázků nedokončí stahování.

Pokud je obrázek, jako je ikona nebo logo, použit vícekrát, použijte pro tyto opakované obrázky CSS Sprite ke snížení požadavků na zdroje.

Co je varování Paralelizovat stahování napříč názvy hostitelů?

Varování o paralelním stahování napříč názvy hostitelů je pravidlo používané v některých kontrolách výkonu webových stránek. Varování naznačuje, že tento webový prohlížeč nemohl otevřít počet připojení potřebných ke stažení všech prostředků webu současně.

U webů, které používají protokol HTTP / 1.1, je třeba tuto otevřenější připojení obejít minimalizovat požadavky HTTP, nastavit CDN nebo implementovat dělení domény.

U webů, které používají protokol HTTP / 2, se může načíst více zdrojů paralelně přes jediné připojení; tomu se říká multiplexování. Díky multiplexování není dělení domén zbytečné pomocí protokolu HTTP / 2. Asi 77 procent webových prohlížečů podporuje protokol HTTP / 2 a nemělo by dojít k žádnému problému s paralelizací stahování.

Pokud váš poskytovatel webhostingu podporuje HTTP / 2, je bezpečné ignorovat varování o paralelním stahování napříč názvy hostitelů. S protokolem HTTP / 2 lze na jednom připojení stáhnout více zdrojů paralelně.

Co je dělení domén?

Sharding domény je metoda optimalizace výkonu pro připojení HTTP / 1.1 a používá se na webech s velkým objemem požadavků HTTP. V rámci horizontálního dělení domén jsou aktiva webového obsahu distribuována mezi několik subdomén. Když jsou aktiva distribuována tímto způsobem, zvyšuje se počet simultánních požadavků, které lze zpracovat.

Při dělení domén se obsah nahrává na subdomény bez souborů cookie. Uživatelé neinteragují se statickým obsahem, jako jsou obrázky, JavaScript a soubory CSS, takže tento obsah není nutné připojovat k souborům cookie.

Když subdomény nezobrazují soubory cookie, zmenší se velikost požadavků odeslaných na stránku a latence požadavku a webové stránky se načítají rychleji. Mezi příklady obsahu, který těží z horizontálního dělení domény, patří stránky s obsahem, který se zřídka ukládá do mezipaměti, například stránka s miniaturami nebo archiv obrázků.

V Drupalu moduly přidávají soubory CSS a JavaScript, které mohou zpomalit výkon. Jít do Konfigurace stránek > Výkon a optimalizovat CSS a JavaScript.

Chcete-li využít výhod horizontálního dělení domén na připojeních HTTP / 1.1, postupujte podle těchto tipů:

  • Poskytujte prostředky ze stejných subdomén k efektivnímu ukládání souborů do mezipaměti.
  • Rovnoměrně rozdělte zdroje mezi subdomény.
  • Koupit certifikáty SSL pro subdomény.

U připojení HTTP / 2 snižuje dělení domény výkon, protože existují další vyhledávání DNS. Tato vyhledávání DNS prodlužují dobu rozlišení a neukládají soubory do mezipaměti. Sharding domény také přidává čas každému novému připojení. Toto jsou další nevýhody horizontálního dělení domén na připojeních HTTP / 2:

  • Distribuci zdrojů, které se načítají z CSS, je obtížné distribuovat mezi shardované hostitele.
  • Vyšší zatížení serveru ze zvýšeného počtu souběžných připojení.
  • Přesunutí statického obsahu do subdomény může narušit kód.
  • Webový prohlížeč možná neumožňuje přístup k jinému názvu hostitele.
  • Směrovače nemusí být schopny klasifikovat velký počet shardovaných požadavků nebo mohou požadavky považovat za útok typu odmítnutí služby.

Jak paralelizovat stahování napříč názvy hostitelů

Když obdržíte varování o paralelním stahování napříč názvy hostitelů, budete muset zvýšit paralelizaci stahování distribucí požadavků mezi více názvy hostitelů. Chcete-li distribuovat požadavky, vytvořte subdomény pro různé typy webových aktiv používaných na webu a poté určete kořenovou doménu jako jedinou doménu, která používá soubory cookie. Subdomény nepoužívají soubory cookie.

Tyto subdomény přidávají nové zdroje připojení, které může prohlížeč vytvořit, a umožňují stažení více zdrojů najednou. Když jsou prostředky rozděleny mezi subdomény, stráví webový prohlížeč méně času blokováním webového obsahu a načítání webových stránek rychleji.

U webů, které používají HTTP / 2 a HTTP / 1.1, je nejjednodušší způsob, jak paralelizovat stahování napříč názvy hostitelů, použití více subdomén prostřednictvím CDN. Pro weby používající HTTP / 1.1 a WordPress nastavte subdomény a upravte soubor WordPress functions.php.

Nastavení subdomén

Chcete-li distribuovat zdroje mezi subdomény, vytvořte alespoň jednu a až čtyři subdomény; doporučuje se jedna nebo dvě subdomény. Nejběžnějším způsobem vytváření subdomén je použití cPanel, který nabízí většina webhostingových služeb.

Příklady subdomén jsou:

  • media1.mydomain.com
  • media2.mydomain.com
  • media3.mydomain.com
  • media4.mydomain.com

Subdomény a názvy hostitelů také musí mít stejnou strukturu a cestu. Pokud je například cesta k obrázku na hostiteli www.mydomain.com/wp-content/uploads/, musí se cesta k obrázku v subdoménách shodovat, například media1.mydomain.com/wp-content/uploads/.

Nastavte síť CDN pro paralelní stahování

Po nastavení CDN a vytvoření subdomén nasměrujte každou subdoménu do složky, která obsahuje statický obsah. Tímto způsobem se obsah načte přes subdoménu namísto hlavní domény.

Chcete-li nasměrovat subdoménu, použijte editor zóny DNS v cPanel k vytvoření nového záznamu CNAME pro každou subdoménu. Do pole Název záznamu zadejte subdoménu, například media.mydomain.com. Do pole CNAME zadejte hlavní doménu, například www.mydomain.com.

Po vytvoření a šíření záznamů CNAME vaším webovým hostitelem přidejte záznamy CNAME do nastavení zóny CDN.

Upravte konfigurační soubor webu na WordPressu a paralelizujte stahování

Po nastavení subdomén přidejte tento kód do souboru functions.php motivu WordPress použitého pro váš web. Nahraďte media1.mydomain.com a media2.mydomain.com skutečnými subdoménami.

funkce parallelize_hostnames ($ url, $ id) {
$ hostname = par_get_hostname ($ url); // volání doplňkové funkce
$ url = str_replace (parse_url (get_bloginfo ('url'), PHP_URL_HOST), $ hostname, $ url);
vrátit $ url;
}
funkce par_get_hostname ($ name) {
$ subdomains = array ('media1.mydomain.com', 'media2.mydomain.com'); // zde přidejte své subdomény, kolik chcete.
$ host = abs (crc32 (basename ($ name))% count ($ subdomény));
$ hostname = $ subdomény [$ host];
vrátit $ hostname;
}
add_filter ('wp_get_attachment_url', 'parallelize_hostnames', 10, 2);

Pokud používáte Jetpack s WordPress, povolte službu Site Accelerator, aby vaše obrázky byly umístěny na CDN spravované WordPressem.

instagram story viewer