Hur man parallelliserar nedladdningar över värdnamn

click fraud protection

Vissa verktyg för testning av bandbreddshastighet kan rekommendera webbplatser som parallelliserar nedladdningar överallt värdnamn att effektivt tillhandahålla webbinnehåll till webbläsare. Denna rekommendation förekommer vanligtvis på webbplatser som använder HTTP / 1.1-protokollet och händer när webbläsare begränsar antalet samtidiga anslutningar till en domän.

Webbplatser som har många HTTP begäran om statiskt innehåll (t.ex. bilder, CSS filer och JavaScript) stöter på en parallelliserad nedladdning över värdnamnvarning. För att komma runt denna begränsning, ställ in domändelning eller använd ett innehållsleveransnätverk (CDN).

HTTP / 2-protokollet har blivit den viktigaste standarden, vilket gör behovet av parallelliserade nedladdningar föråldrade. De flesta webbhotell använder nu HTTP / 2 som standard och gör ett gratis CDN av något slag tillgängligt. Eftersom HTTP / 2 är Googles preferens nu, kan du överväga att uppdatera din webbplats och vara värd för HTTPS.

Varför parallellisera nedladdningar över värdnamn?

instagram viewer

Webbläsare kan endast öppna ett begränsat antal samtidiga anslutningar per värdnamn för webbplatser som använder HTTP / 1.1-protokollet. Denna gräns kan vara så hög som sex anslutningar.

När fler resurser behöver laddas ner måste de ytterligare resurserna vänta i en eftersläpningskö tills det finns en tillgänglig anslutning. Resurserna i kön är blockerade, och att minska denna blockeringstid resulterar i snabbare sidladdningstider.

Till exempel, om en webbsida har 12 bilder och antalet anslutningar som webbläsaren tillåter är sex, måste sex bilder vänta i eftersläpningen. Bilderna i eftersläpningen förblir där tills de sex första bilderna är nedladdade.

Om en bild som en ikon eller logotyp används flera gånger, använd en CSS Sprite för dessa upprepade bilder för att minska resursförfrågningar.

Vad är Parallelize Downloads över värdnamn Varning?

Parallelliseringsnedladdningarna över värdnamnsvarningen är en regel som används i vissa webbplatsprestandakontrollanter. Varningen indikerar att den webbläsaren inte kunde öppna antalet anslutningar som behövs för att ladda ner alla webbplatsresurser samtidigt.

För webbplatser som använder HTTP / 1.1-protokollet är sättet att kringgå detta behov av mer öppna anslutningar att minimera HTTP-förfrågningar, ställa in en CDN eller implementera domändelning.

För webbplatser som använder HTTP / 2-protokollet kan flera resurser laddas parallellt över en enda anslutning; detta kallas multiplexing. Multiplexing gör domändelning onödig med HTTP / 2. Cirka 77 procent av webbläsarna stöder HTTP / 2 och borde inte stöta på något problem med parallelliserande nedladdningar.

Om din webbhotellleverantör stöder HTTP / 2 är det säkert att ignorera varningen om parallelliserade nedladdningar över värdnamn. Med HTTP / 2 kan flera resurser laddas ner parallellt på en anslutning.

Vad är Domain Sharding?

Domain sharding är en prestandaoptimeringsmetod för HTTP / 1.1-anslutningar och används på webbplatser med en stor mängd HTTP-förfrågningar. I domändelning fördelas webbinnehållstillgångar mellan flera underdomäner. När tillgångar distribueras på detta sätt ökar antalet samtidiga förfrågningar som kan behandlas.

I domändelning laddas innehållet upp på kakefria underdomäner. Användare interagerar inte med statiskt innehåll som bilder, JavaScript och CSS-filer, så innehållet behöver inte bifogas cookies.

När underdomäner inte visar kakor minskar storleken på förfrågningar som görs för en sida och begäran fördröjning och webbsidor laddas snabbare. Exempel på innehåll som drar nytta av domändelning inkluderar sidor med innehåll som sällan cachas, till exempel en miniatyrsida eller ett bildarkiv.

I Drupal lägger moduler till CSS- och JavaScript-filer som kan bromsa prestandan. Gå till Webbplatskonfig > Prestanda och optimera CSS och JavaScript.

Följ dessa tips för att dra nytta av fördelarna med att dela domän på HTTP / 1.1-anslutningar:

  • Servera resurser från samma underdomäner för att effektivt cacha filer.
  • Fördela resurser jämnt mellan underdomäner.
  • Köp SSL-certifikat för underdomänerna.

På HTTP / 2-anslutningar minskar domändelning prestanda eftersom det finns ytterligare DNS-sökningar. Dessa DNS-sökningar ökar upplösningstiden och cachar inte filer. Domändelning lägger också till tid till varje ny anslutning. Det här är andra nackdelar med domändelning på HTTP / 2-anslutningar:

  • Distribuera resurser som laddas från CSS är svåra att distribuera mellan skärvda värdar.
  • Högre belastning på servern från det ökade antalet samtidiga anslutningar.
  • Att flytta statiskt innehåll till en underdomän kan bryta koden.
  • Webbläsaren tillåter kanske inte åtkomst till ett annat värdnamn.
  • Routrar kanske inte kan klassificera ett stort antal skärmade förfrågningar eller kan se förfrågningarna som en denial of service-attack.

Hur man parallelliserar nedladdningar över värdnamn

När du får varningen för parallelliserade nedladdningar över värdnamn måste du öka nedladdningsparallelliseringen genom att distribuera förfrågningar mellan flera värdnamn. För att distribuera förfrågningar skapar du underdomäner för de olika typerna av webbtillgångar som används på webbplatsen och anger sedan rotdomänen som den enda domänen som använder cookies. Underdomäner använder inte kakor.

Dessa underdomäner lägger till nya anslutningskällor som webbläsaren kan göra och gör det möjligt att ladda ner fler resurser samtidigt. När resurser delas mellan underdomäner spenderar webbläsaren mindre tid på att blockera webbinnehåll och webbsidor laddas snabbare.

För webbplatser som använder HTTP / 2 och HTTP / 1.1 är det enklaste sättet att parallellisera nedladdningar över värdnamn att använda flera underdomäner via ett CDN. För webbplatser som använder HTTP / 1.1 och WordPress, ställ in underdomäner och redigera filen WordPress functions.php.

Ställ in underdomäner

För att fördela resurser över underdomäner, skapa minst en och upp till fyra underdomäner; en eller två underdomäner rekommenderas. Det vanligaste sättet att skapa underdomäner är att använda cPanel, som erbjuds av de flesta webbhotell.

Exempel på underdomäner är:

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

Dessutom måste underdomäner och värdnamn ha samma struktur och sökväg. Till exempel, om bildsökvägen på värden är www.mydomain.com/wp-content/uploads/, måste bildsökvägen på underdomänerna matcha, till exempel media1.mydomain.com/wp-content/uploads/.

Ställ in en CDN för att parallellisera nedladdningar

Efter att CDN har ställts in och underdomänerna har skapats pekar du varje underdomän till mappen som innehåller det statiska innehållet. På så sätt laddas innehållet över underdomänen istället för huvuddomänen.

För att peka på en underdomän, använd en DNS-zonredigerare i cPanel för att skapa en ny CNAME-post för varje underdomän. I postens namnfält anger du underdomänen, till exempel media.mydomain.com. I CNAME-fältet anger du huvuddomänen, till exempel www.mydomain.com.

När CNAME-posterna har skapats och spridits av din webbhotell lägger du till CNAME-posterna i CDN-zoninställningarna.

Redigera webbplatsens konfigurationsfil i WordPress för att parallellisera nedladdningar

När du har ställt in underdomänerna lägger du till den här koden i filen functions.php för WordPress-temat som används för din webbplats. Ersätt media1.mydomain.com och media2.mydomain.com med dina faktiska underdomäner.

funktion parallelize_hostnames ($ url, $ id) {
$ värdnamn = par_get_hostname ($ url); // samtalstilläggsfunktion
$ url = str_replace (parse_url (get_bloginfo ('url'), PHP_URL_HOST), $ hostname, $ url);
returnera $ url;
}
funktion par_get_hostname ($ name) {
$ underdomäner = array ('media1.mydomain.com', 'media2.mydomain.com'); // lägg till dina underdomäner här, så många du vill.
$ host = abs (crc32 (basnamn ($ name))% count ($ subdomains));
$ värdnamn = $ underdomäner [$ värd];
returnera $ värdnamn;
}
add_filter ('wp_get_attachment_url', 'parallelize_hostnames', 10, 2);

Om du använder Jetpack med WordPress, aktivera tjänsten Site Accelerator för att placera dina bilder på ett WordPress-hanterat CDN.

instagram story viewer