Giảm TTFB (Time to First Byte) hay khắc phục lỗi máy chủ phản hồi chậm khi sử dụng CloudFlare CDN.
CloudFlare có thể xem là dịch vụ CDN miễn phí tốt nhất thế giới ở thời điểm hiện tại. Tuy nhiên, cái gì miễn phí cũng thường có một vài hạn chế. Một trong những điểm hạn chế của CloudFlare là có Time to First Byte (TTFB) cao hay thường được biết đến là lỗi máy chủ phản hồi chậm khi test với các công cụ như Google PageSpeed Insights. Tại sao lại có tình trạng này và cách khắc phục nó ra sao? Hãy dành ít phút để cùng WP Căn bản tìm hiểu ngay sau đây.
Tham khảo thêm:
- Máy chủ phản hồi chậm – nguyên nhân và cách khắc phục
- Những nguyên nhân có thể khiến website load chậm
Lỗi máy chủ phản hồi chậm khi dùng CloudFlare CDN
Các dịch vụ CDN khác thường mang chỉ số TTFB (thời gian kể từ khi trình duyệt web gửi yêu cầu cho đến khi nó nhận được byte dữ liệu đầu tiên từ máy chủ) ra để “khoe” khả năng tăng tốc độ load web của họ. Tuy nhiên, khi dùng CloudFlare CDN, bạn thường nhận được kết quả ngược lại: chỉ số TTFB tăng lên (thậm chí tăng gấp nhiều lần) so với khi không sử dụng CDN. Vậy chỉ số TTFB cao (bị báo lỗi máy chủ phản hồi chậm) có thực sự đáng lo ngại trong trường hợp này hay không?
Theo Cloudflare thì không. Mặc dù nó vẫn là một số liệu quan trọng trong các bài test tốc độ load của website, nhưng thời gian phản hồi của máy chủ không liên quan quá nhiều đến trải nghiệm người dùng thực tế. Nói cách khác, mặc dù TTFB của bạn có thể cao hơn khi sử dụng CloudFlare CDN, nhưng xét trên tổng thể, trang web của bạn vẫn tải nhanh hơn. CloudFlare đã giải thích điều này trong một bài viết trên blog với tiêu đề “Stop worrying about Time To First Byte (TTFB)“. Hiểu một cách đơn giản thì là do các máy chủ NginX của họ mất thời gian để nén dữ liệu nên thời gian phản hồi tới trình duyệt web chậm hơn nhưng web sẽ load xong nhanh hơn nhờ dữ liệu đã được nén để giảm kích thước trước khi truyền đi.
Một số phương pháp giảm TTFB khi dùng CloudFlare CDN
Sau một thời gian dài “ăn nằm” với CloudFlare CDN, chúng tôi đã đúc rút được một số giải pháp hiệu quả giúp giảm TTFB. Bạn có thể tham khảo và xem xét sử dụng tùy theo từng trường hợp.
Cache toàn bộ dữ liệu website lên CloudFlare CDN
Theo mặc định, CloudFlare chỉ cache dữ liệu tĩnh (CSS, JS, hình ảnh…) trên CDN của họ. CloudFlare hoàn toàn không cache HTML. Khi có yêu cầu từ trình duyệt web của người dùng, một phần truy vấn sẽ được xử lý trên máy chủ của CloudFlare (dữ liệu tĩnh), phần còn lại được xử lý trên máy chủ host (HTML và các dữ liệu “động” khác). Cache toàn bộ dữ liệu hiểu một cách đơn giản là cache cả dữ liệu tĩnh, HTML và các thành phần khác lên máy chủ của CloudFlare. Mọi truy vấn sẽ được xử lý hoàn toàn trên máy chủ của CloudFlare, nhờ đó thời gian phản hồi tới trình duyệt web của người dùng sẽ nhanh hơn (TTFB thấp hơn). Giải pháp cache toàn bộ dữ liệu đặc biệt phù hợp với các website tĩnh (ít khi thay đổi nội dung hay ít tương tác với người dùng).
Tham khảo thêm: Hướng dẫn cache toàn bộ dữ liệu website lên CloudFlare
Sử dụng Automatic Platform Optimization (APO)
Vào ngày 02/10/2020 vừa qua, CloudFlare đã chính thức ra mắt tính năng Automatic Platform Optimization (APO) dành riêng cho nền tảng WordPress với mức giá $5/tháng. Theo như họ quảng cáo thì tính năng này có thể giúp giảm khoảng 72% Time to First Byte (TTFB), 23% First Contentful Paint (FCP) và 13% Speed Index đối với người dùng desktop. APO cho phép bạn cache toàn bộ dữ liệu website lên máy chủ của CloudFlare với khả năng “Bypass Cache on Cookie” chỉ có trên gói Business (giá $200/tháng). Nếu website của bạn có mã nguồn nặng, lưu lượng truy cập lớn hoặc đơn giản là bạn cần tốc độ truy cập nhanh thì APO thực sự là một sự lựa chọn đáng đồng tiền bát gạo.
Tham khảo thêm: Tính năng Automatic Platform Optimization của CloudFlare
Thay đổi thiết lập SSL
Như các bạn đã biết, có 4 mức mã hóa dữ liệu khác nhau được CloudFlare hỗ trợ. Trong đó:
- Off (not secure): không mã hóa dữ liệu, chỉ chạy giao thức HTTP thay vì HTTPS.
- Flexible: mã hóa dữ liệu trao đổi giữa máy chủ của CloudFlare và trình duyệt web của người dùng.
- Full: mã hóa dữ liệu trao đổi giữa máy chủ web, máy chủ của CloudFlare và trình duyệt web của người dùng. Tuy nhiên, chỉ dùng SSL self-signed (không chạy được trên trình duyệt web) để mã hóa dữ liệu trao đổi giữa máy chủ web với máy chủ của CloudFlare.
- Full (strict): mã hóa dữ liệu trao đổi giữa máy chủ web, máy chủ của CloudFlare và trình duyệt web của người dùng bằng loại SSL có thể chạy được trên trình duyệt web.
Giao thức kết nối giữa CloudFlare với trình duyệt của người dùng là HTTP/2 và HTTP/3. Cả 2 giao thức này đều hoạt động tốt với SSL, do đó tốc độ kết nối không hề bị suy giảm, thậm chí còn tăng thêm khi có SSL. Trong khi đó, giao thức kết nối giữa máy chủ web với máy chủ của CloudFlare chỉ là HTTP/1.1. Giao thức này không hỗ trợ tốt SSL, nên tốc độ kết nối khi có SSL (HTTPS) sẽ chậm hơn khá nhiều khi không có SSL (HTTP).
Đây là TTFB khi sử dụng chế độ Full (strict):
Còn đây là TTFB khi sử dụng chế độ Flexible:
Các bạn có thể thấy mức độ chênh lệch TTFB giữa 2 chế độ là từ 30% đến 50%. Nếu site của bạn không chứa dữ liệu nhạy cảm của khách hàng và bạn ưu tiên cho tốc độ load, hãy chuyển qua sử dụng chế độ Flexible. Ngược lại, hãy sử dụng chế độ Full hoặc Full (strict) để đảm bảo an toàn dữ liệu ở mức cao nhất nhé. Chậm hơn một chút cũng không sao, quan trọng là an toàn!
Trên đây là một số phương pháp giúp giảm TTFB khi sử dụng CloudFlare CDN mà WP Căn bản đã tổng hợp được. Nếu bạn biết phương pháp nào khác tối ưu hơn, đừng quên chia sẻ với chúng tôi thông qua khung bình luận bên dưới.
Nếu bạn thích bài viết này, hãy theo dõi blog của tôi để thường xuyên cập nhật những bài viết hay nhất, mới nhất nhé. Cảm ơn rất nhiều. :)
Mình cũng đã từng cache lại web trên cloudflare và chạy khá là nhanh tuy nhiên gần đây dường như là cloudflare khá là chậm vào buổi tối, mình check thì sever NFT gì đó chứ k phải Sing nữa, cần tư vấn nếu sử dụng gói pro có bị k ạ
CloudFlare họ đang tiến hành bảo trì server nên sẽ có một số xáo trộn trong việc lựa chọn server push dữ liệu bạn nhé: https://www.cloudflarestatus.com/
Theo như lịch trình mà họ cung cấp thì đến ngày 18/6 là hoàn tất. Mà việc lựa chọn server push dữ liệu còn tùy thuộc vào từng mạng internet, từng người dùng nữa. Hiện tại lại đang bảo trì 2 tuyến cáp quang biển là APG và AAE-1.
Có cách nào sử dụng được sever cloudflare việt nam k nhỉ, mình thấy có HN vs HCM
Nghe bảo dùng gói Business ($200/tháng) trở lên là được chọn server push đó bạn. Còn gói Pro ($20/tháng) cũng không có cửa đâu. :P
Mình vừa chuyển từ Full Strict sang Flexible, First Byte Time trên webpagetest từ F thành C, chỉ số ở Gtmetrix HongKong cũng cải thiện rõ rệt.
Hiệu quả thấy rõ. :)
Bác copy của WP căn bản nên ghi cái nguồn thì hay hơn
Thân