Cách sửa lỗi “Parallelize Downloads Across Hostnames”

Cách sửa lỗi “Parallelize Downloads Across Hostnames”

Các công cụ kiểm tra tốc độ trang web sẽ hiển thị cảnh báo “parallelize downloads across hostnames” nếu thấy sự cố kết nối tiềm ẩn nào đó trên trang web của bạn. Mặc dù hầu hết trường hợp thì nó dễ dàng được khắc phục, nhưng với một số trường hợp nhất định, bạn không cần để ý đến lỗi này

Trong bài viết này, chúng ta sẽ tìm hiểu nguyên nhân gây ra cảnh báo “parallelize downloads across hostnames” và cách giải quyết vấn đề này.

Nguyên nhân nào dẫn đến lỗi parallelize downloads across hostnames?

Lỗi “parallelize downloads across hostnames” thường gặp trên các trang web có nhiều request. Hãy xem cách nó xảy:

Protocol HTTP 1.x xác định rằng single-user client có thể có tối đa hai kết nối với bất kỳ server nào. Điều đó có nghĩa là nó có thể tạo ra backlog tồn đọng nếu có quá nhiều tài nguyên trong hàng đợi để load.

Mặt khác, hầu hết các trình duyệt cũng có một số hạn chế – tối đa sáu kết nối cho mỗi domain. Nếu bạn có quá nhiều tab đang mở, bạn sẽ dễ đạt đến giới hạn này.

Trong hầu hết các trường hợp, mọi người sẽ cố gắng thực hiện kết nối lại hoặc cố gắng cung cấp nhiều subdomain để tránh hạn chế (chúng tôi sẽ nói về vấn đề này sau).

Tuy nhiên, tình huống này chỉ xảy ra trên HTTP 1.x connection.

Nếu bạn đang sử dụng HTTP/2 với kết nối an toàn, điều này sẽ không là vấn đề gì nữa. HTTP/2 là phiên bản sửa đổi và cho phép parallel downloads. Được xem là lỗi thời nên hầu hết các nhà cung cấp dịch vụ hosting, bao gồm Hostinger đều sử dụng HTTP/2 thay vì HTTP 1.x.

Có nghĩa là, thực ra không có gì nghiêm trọng khi bỏ qua cảnh báo “parallelize downloads across hostnames” trên server nếu bạn đang kết nối HTTP/2.

Một số công cụ như GTMetrix hoặc Pingdom vẫn có thể gặp lỗi này – với tên gọi khác nhau – cho dù nó không phải vấn đề thực sự cho bạn.

Khắc phục lỗi “Parallelize Downloads Across Hostnames”

Như đã đề cập trước đó, để tránh các hạn chế, mọi người cố gắng sử dụng subdomain để đánh lừa trình duyệt và cho phép parallel connections nhiều hơn. Việc này được gọi là domain sharding.

Domain sharding là phương pháp tăng số lượng tải xuống tài nguyên đồng thời bằng cách dùng nhiều subdomain. Vì vậy, bạn có thể sử dụng domain sharding để khắc phục lỗi “parallelize downloads across hostnames”.

Hãy nhớ rằng domain sharding cũng sẽ để lại tác dụng phụ tiêu cực, như:

  • Tăng số lần tra cứu DNS
  • Mất khả năng lưu trữ caching
  • Các vấn đề tiềm ẩn trên trình duyệt trên thiết bị di động

Về cơ bản, có hai bước để domain sharding – thiết lập subdomain và chỉnh sửa file function.php.

Thiết lập Subdomain

Bước đầu tiên của domain sharding là tạo nhiều subdomain hoặc CNAME record. Tuy nhiên, điều này làm phân chia request cho nội dung tĩnh của bạn.

Để tạo subdomain, bạn truy cập hPanel, sau đó chọn Subdomains trong danh mục Domains .

chọn menu subdomain

Nhập subdomain vào trường trống và sau đó nhấp vào Create. Bạn có thể lặp lại bước này để tạo nhiều mục. Bạn thêm khoản ba subdomain là đủ.

tạo subdomain trong hPanel

Khi subdomain đã được thiết lập, bạn đã sẵn sàng chỉnh sửa file functions.php.

thiết lập subdomains

Chỉnh sửa file WordPress.php

Bước thứ hai của domain sharding là chỉnh sửa file WordPress function.php để parallelize hostname.

Bạn có thể truy cập WordPress Dashboard -> Appearance -> Theme Editor và sau đó chọn Theme Functions (functions.php).

Tiếp theo, thêm code sau vào file functions.php.

function parallelize_hostnames($url, $id) {

$hostname = par_get_hostname($url); //call supplemental function

$url =  str_replace(parse_url(get_bloginfo('url'), PHP_URL_HOST), $hostname, $url);

return $url;

}

function par_get_hostname($name) {

$subdomains = array('media1.mydomain.com','media2.mydomain.com'); //add your subdomains here, as many as you want.

$host = abs(crc32(basename($name)) % count($subdomains));

$hostname = $subdomains[$host];

return $hostname;

}

add_filter('wp_get_attachment_url', 'parallelize_hostnames', 10, 2);

Xin lưu ý rằng bạn cần thay đổi giá trị $subdomains với subdomain bạn đã tạo. Ngoài ra, hãy đảm bảo tất cả subdomain có cùng đường dẫn để tránh lỗi.

Khi bạn hoàn thành, nhấp vào Update File. Và xong rồi!

Bạn cũng có thể làm theo các bước tương tự với các nhà cung cấp CDN – như KeyCDN – để khắc phục lỗi “parallelize downloads across hostnames”. Tuy nhiên, vì hầu hết các nhà cung cấp CDN sử dụng HTTP/2, nên khuyến nghị bạn không nên sử dụng domain sharding.

Tóm lược

Nếu bạn từng gặp cảnh báo “parallelize downloads across hostnames” khi thử nghiệm trang web, đừng hoảng sợ. Nó xảy ra do giới hạn của trình duyệt và kết nối HTTP 1.x.

Tóm lại, bạn có thể sửa lỗi này bằng phương pháp domain sharding theo hai bước:

  • Thiết lập subdomain
  • Chỉnh sửa file functions.php

Tuy nhiên, nếu nhà cung cấp dịch vụ hosting của bạn đã sử dụng HTTP/2, bạn có thể bỏ qua lỗi này mà vẫn an toàn.

Author
Tác giả

Hai G.

Hải G. là chuyên gia quản lý, vận hành các dịch vụ website. Anh có nhiều năm kinh nghiệm về VPS, Hosting, technical SEO, CMS. Đặc biệt yêu thích WordPress và đã dùng nó hơn 5 năm nay. Sở thích của anh là đọc, viết blog, đi du lịch và tư vấn cho các bạn trẻ khởi nghiệp.