Jak zrównoleglić pobieranie w różnych nazwach hostów

click fraud protection

Niektóre narzędzia do testowania prędkości przepustowości mogą zalecić stronom równoległe pobieranie plików na całym obszarze nazwy hostów aby skutecznie udostępniać treści internetowe przeglądarkom internetowym. To zalecenie zwykle występuje w witrynach korzystających z protokołu HTTP/1.1 i ma miejsce, gdy przeglądarki internetowe ograniczają liczbę jednoczesnych połączeń nawiązywanych z domeną.

Witryny, które mają wiele HTTP żądania treści statycznych (takich jak obrazy, CSS i JavaScript) napotkają ostrzeżenie Parallelize Downloads Across Hostnames. Aby obejść to ograniczenie, skonfiguruj podział domeny lub użyj sieci dostarczania treści (CDN).

Protokół HTTP/2 stał się głównym standardem, czyniąc przestarzałą potrzebę równoległego pobierania. Większość hostów internetowych domyślnie używa teraz protokołu HTTP/2 i udostępnia jakiś rodzaj darmowej sieci CDN. Ponieważ HTTP/2 jest teraz preferowanym przez Google, rozważ aktualizację swojej witryny i hosting do HTTPS.

Dlaczego warto zrównolelizować pobieranie w różnych nazwach hostów?

instagram viewer

Przeglądarki internetowe mogą otwierać tylko ograniczoną liczbę jednoczesnych połączeń na nazwę hosta w przypadku witryn internetowych korzystających z protokołu HTTP/1.1. Limit ten może wynosić nawet sześć połączeń.

Gdy trzeba pobrać więcej zasobów, dodatkowe zasoby muszą czekać w kolejce zaległości, aż będzie dostępne połączenie. Zasoby w kolejce są blokowane, a skrócenie tego czasu blokowania powoduje szybsze ładowanie strony.

Na przykład, jeśli strona internetowa zawiera 12 obrazów, a liczba połączeń dozwolonych przez przeglądarkę wynosi sześć, sześć obrazów musi czekać w zaległościach. Obrazy w backlogu pozostają tam do momentu zakończenia pobierania pierwszych sześciu obrazów.

Jeśli obraz, taki jak ikona lub logo, jest używany wielokrotnie, użyj Sprite CSS dla tych powtarzających się obrazów, aby zmniejszyć liczbę żądań zasobów.

Co to jest ostrzeżenie o równoległym pobieraniu plików w różnych nazwach hostów?

Ostrzeżenie o równoległym pobieraniu między nazwami hostów jest regułą stosowaną w niektórych programach do sprawdzania wydajności witryn. Ostrzeżenie wskazuje, że ta przeglądarka internetowa nie mogła otworzyć liczby połączeń potrzebnej do jednoczesnego pobrania wszystkich zasobów witryny.

W przypadku witryn korzystających z protokołu HTTP/1.1 sposobem na obejście potrzeby bardziej otwartych połączeń jest: zminimalizuj żądania HTTP, skonfiguruj CDN lub zaimplementuj fragmentację domeny.

W przypadku witryn internetowych korzystających z protokołu HTTP/2 wiele zasobów może być ładowanych równolegle za pośrednictwem jednego połączenia; nazywa się to multipleksowaniem. Multipleksowanie sprawia, że ​​dzielenie domeny nie jest konieczne w przypadku protokołu HTTP/2. Około 77 procent przeglądarek internetowych obsługuje protokół HTTP/2 i nie powinno mieć żadnych problemów z równoległym pobieraniem.

Jeśli Twój dostawca usług hostingowych obsługuje protokół HTTP/2, można bezpiecznie zignorować ostrzeżenie o równoległym pobieraniu między nazwami hostów. Dzięki HTTP/2 wiele zasobów może być pobieranych równolegle w jednym połączeniu.

Co to jest dzielenie domeny?

Sharding domeny to metoda optymalizacji wydajności dla połączeń HTTP/1.1 i jest stosowana w witrynach z dużą liczbą żądań HTTP. W przypadku fragmentowania domeny zasoby treści internetowych są dystrybuowane do kilku poddomen. Gdy zasoby są dystrybuowane w ten sposób, wzrasta liczba jednoczesnych żądań, które można przetworzyć.

W przypadku dzielenia domeny treść jest przesyłana na subdomenach wolnych od plików cookie. Użytkownicy nie wchodzą w interakcję z treściami statycznymi, takimi jak obrazy, pliki JavaScript i CSS, więc ta treść nie musi być dołączona do plików cookie.

Gdy subdomeny nie obsługują plików cookie, zmniejsza się rozmiar żądań wysyłanych do strony i opóźnienia żądań, a strony internetowe ładują się szybciej. Przykładami treści, które korzystają z dzielenia domeny na fragmenty, są strony z treścią, która rzadko jest buforowana, na przykład strona z miniaturami lub archiwum obrazów.

W Drupalu moduły dodają pliki CSS i JavaScript, które mogą spowolnić działanie. Iść do Konfiguracja witryny > Występ oraz zoptymalizować CSS i JavaScript.

Aby skorzystać z zalet dzielenia domeny na fragmenty w połączeniach HTTP/1.1, postępuj zgodnie z poniższymi wskazówkami:

  • Udostępniaj zasoby z tych samych subdomen, aby efektywnie buforować pliki.
  • Dystrybuuj zasoby równomiernie między subdomenami.
  • Kup certyfikaty SSL dla subdomen.

W przypadku połączeń HTTP/2 fragmentacja domeny zmniejsza wydajność, ponieważ istnieją dodatkowe wyszukiwania DNS. Te wyszukiwania DNS wydłużają czas rozwiązywania i nie buforują plików. Dzielenie domeny również wydłuża czas każdego nowego połączenia. Oto inne wady dzielenia domeny na połączenia HTTP/2:

  • Dystrybucja zasobów ładowanych z CSS jest trudna do dystrybucji między hostami podzielonymi na fragmenty.
  • Większe obciążenie serwera z powodu zwiększonej liczby jednoczesnych połączeń.
  • Przeniesienie treści statycznej do subdomeny może złamać kod.
  • Przeglądarka internetowa może nie zezwalać na dostęp do innej nazwy hosta.
  • Routery mogą nie być w stanie sklasyfikować dużej liczby żądań podzielonych na fragmenty lub mogą postrzegać żądania jako atak typu „odmowa usługi”.

Jak zrównoleglić pobieranie w różnych nazwach hostów

Gdy pojawi się ostrzeżenie o równoległym pobieraniu między nazwami hostów, musisz zwiększyć zrównoleglanie pobierania, rozprowadzając żądania między wieloma nazwami hostów. Aby rozpowszechniać żądania, utwórz subdomeny dla różnych typów zasobów internetowych używanych w witrynie, a następnie określ domenę główną jako jedyną domenę, która używa plików cookie. Subdomeny nie wykorzystują plików cookie.

Te subdomeny dodają nowe źródła połączeń, które przeglądarka może nawiązać, i umożliwiają jednoczesne pobieranie większej liczby zasobów. Gdy zasoby są dzielone między subdomeny, przeglądarka internetowa spędza mniej czasu na blokowaniu treści internetowych, a strony internetowe ładują się szybciej.

W przypadku witryn internetowych korzystających z protokołów HTTP/2 i HTTP/1.1 najprostszym sposobem na zrównoleglenie pobierania między nazwami hostów jest użycie wielu subdomen za pośrednictwem sieci CDN. W przypadku witryn korzystających z HTTP/1.1 i WordPress skonfiguruj subdomeny i edytuj plik WordPress functions.php.

Konfiguruj subdomeny

Aby rozdzielić zasoby w subdomenach, utwórz co najmniej jedną i maksymalnie cztery subdomeny; zalecana jest jedna lub dwie subdomeny. Najpopularniejszym sposobem tworzenia subdomen jest użycie cPanel, który jest oferowany przez większość usług hostingowych.

Przykładowe subdomeny to:

  • media1.mojadomena.com
  • media2.mojadomena.com
  • media3.mojadomena.com
  • media4.moja_domena.com

Ponadto subdomeny i nazwy hostów muszą mieć tę samą strukturę i ścieżkę. Na przykład, jeśli ścieżka obrazu na hoście to www.mojadomena.com/wp-content/uploads/, ścieżka obrazu w subdomenach musi być taka sama, na przykład media1.mojadomena.com/wp-content/uploads/.

Skonfiguruj CDN, aby zrównoleglić pobieranie

Po skonfigurowaniu sieci CDN i utworzeniu subdomen wskaż każdą subdomenę do folderu zawierającego zawartość statyczną. W ten sposób treść jest ładowana przez subdomenę, a nie domenę główną.

Aby wskazać subdomenę, użyj edytora stref DNS w cPanel, aby utworzyć nowy rekord CNAME dla każdej subdomeny. W polu Nazwa rekordu wprowadź subdomenę, na przykład media.mojadomena.com. W polu CNAME wprowadź domenę główną, na przykład www.mojadomena.com.

Po utworzeniu i rozpowszechnieniu rekordów CNAME przez usługodawcę hostingowego dodaj rekordy CNAME do ustawień strefy CDN.

Edytuj plik konfiguracyjny witryny w WordPress, aby zrównoleglić pobieranie

Po skonfigurowaniu subdomen dodaj ten kod do pliku functions.php motywu WordPress używanego w Twojej witrynie. Zastąp media1.mojadomena.com i media2.mojadomena.com rzeczywistymi subdomenami.

function parallelize_hostnames($url, $id) {
$nazwa hosta = par_get_nazwa hosta($url); //wywołanie funkcji dodatkowej
$url = str_replace (parse_url (get_bloginfo('url'), PHP_URL_HOST), $nazwa hosta, $url);
zwróć $url;
}
function par_get_hostname($nazwa) {
$poddomeny = array('media1.mojadomena.com','media2.mojadomena.com'); //dodaj tutaj swoje subdomeny, tyle ile chcesz.
$host = abs (crc32(basename($name)) % count($subdomains));
$nazwa hosta = $subdomeny[$host];
zwróć $nazwa hosta;
}
add_filter('wp_get_attachment_url', 'parallelize_hostnames', 10, 2);

Jeśli używasz Jetpack z WordPress, włącz usługę Site Accelerator, aby umieścić swoje obrazy na CDN zarządzanym przez WordPress.

instagram story viewer