Cloudflare Preload Cache – Tự động preload cache bài viết và trang

Cloudflare Preload Cache là plugin viết riêng cho nhu cầu cá nhân, giúp tự động preload cache bài viết/trang khi tạo mới, cập nhật hoặc đưa vào thùng rác. Bổ xung thêm 1 nút “Preload Cache” bên phải admin bar nếu cần preload thủ công

  • Do trên thèng bibica.net dùng Artalk thay cho comment mặc định từ WordPress, nên không cần preload khi có comment mới

Cloudflare Preload Cache sử dụng trực tiếp Sitemap Cache Warmer, một script được tác giả Stanislav Khromov viết từ … 10 năm trước

Lý do mình chọn phiên bản này, vì nó chạy qua PHP, có thể tích hợp thẳng vào WordPress, tạo thành 1 plugin khá tiện, hiệu quả cũng tốt, ít nhất thì chạy xong mình kiểm tra lại, cf-cache-status : HIT, không bị miss hay lỗi như vài addon khác, tác giả cũng bổ xung chạy qua PHP CLI, không cần xử lý vấn đề timeout này nọ, bản thân script cũng đã có sẵn phần sleep, giúp kiểm soát tốc độ preload trên các VPS quá yếu

Tổng thể đủ các thứ mình cần

Cloudflare Preload Cache – Tự động preload cache bài viết và trang

Cài đặt:

  • Tải plugin tại đây hoặc đây, cài đặt như 1 plugin thông thường là được
  • v1.1: sửa 1 số lỗi logic
  • v1.2: sửa 1 số lỗi nhỏ
  • Demo: bibica.net 🧁

Cấu hình:

Mặc định script gốc của tác giả chạy warm.php qua PHP, do mình dùng trên VPS riêng, muốn có hiệu xuất tối ưu hơn, nên chạy trực tiếp qua PHP CLI, bù lại nó cần các quyền rất cao là exec, shell_exec (các hàm này thường được tắt vì lý do bảo mật, mình do đang chạy qua docker, luôn xóa hết disable_functions = , nên vấn đề này thoải mái)

  • Mở file /wp-content/plugins/cloudflare-preload-cache/config.php, sửa lại giá trị key, thay 1 giá trị ngẫu nhiên tùy thích
'key' => '9f313f5e4fcf3418295' // Secret key to allow traversing sitemaps
  • Mở file /wp-content/plugins/cloudflare-preload-cache/preload-cache.php, sửa lại đường dẫn sitemap.xml (nếu cần)
$sitemap_url = get_site_url() . '/sitemap.xml';

Tên file sitemap của bạn là gì thì thay vào, phần này mình không biết check làm sao để tự động biết tên sitemap là gì, đành sửa thủ công vậy

  • Muốn lưu các log thì thêm 3 dòng dưới vào wp-config.php
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Hướng dẫn sử dụng

Cấu hình xong khi thêm, sửa, xóa bài viết/trang sẽ tự gọi warm.php qua WP-Cron để chạy preload cache, cũng ít cần để ý thêm cái gì

Trên thèng bibica.net, nếu clear toàn bộ cache, sau đó preload lại, tổng cộng 562 link, trung bình ~ 100s thì xong, trong trường hợp chạy thông thường, chỉ clear bài viết và các trang liên quan preload tầm 50s, CPU khi hoạt động load khoảng 30-40% trên Oracle VM Standard A1 Flex 4 OCPU 24 GB RAM, hiệu năng theo mình là ổn, do chạy ngầm qua WP-Cron, sẽ không ảnh hưởng tới tốc độ khi viết bài, ấn save draft hay public …

Trước đây mình hay dùng cách thủ công, là cứ chạy script liên tục, khá ngu học về mặt kĩ thuật, plugin Cloudflare Preload Cache này thật ra cũng ngu 😀 vì nó cũng chạy lại toàn bộ các link từ sitemap, nếu xử lý chỉ preload các link liên quan tới bài viết/ trang cần preload thì tối ưu hơn

Kết luận

Cloudflare Preload Cache cơ bản chỉ bổ xung lệnh gọi warm.php theo 1 số điều kiện nhất định, do mình không viết và không biết viết phần preload cache làm sao 🌝

Dù vẫn khá là ngu học về logic, nhưng hiệu quả vẫn thiết thực, hiệu năng theo mình là đủ ổn để có thể dùng hàng ngày mà không lo VPS lag hay chậm

Tính năng preload cache là 1 phần rất nhỏ khi nói tới cache, mỗi cái không rõ vì lý do gì, mình search google và github nát luôn, vẫn không thấy ai làm 1 bản riêng cho WordPress, đành cố vác các thứ có sẵn ra, chắp vá lại, chỉ vừa đủ dùng, không quá tối ưu về hiệu năng và tính năng

Bạn nào thích có thể dùng thử xem thế nào ⛅


Related Posts

Chính sách bình luận: Chúng tôi rất trân trọng các bình luận của bạn và cảm ơn thời gian bạn dành để chia sẻ ý tưởng và phản hồi.
Ghi chú: Những bình luận được xác định là spam hoặc chỉ mang tính quảng cáo sẽ bị xóa.

• Để cải thiện trải nghiệm bình luận, chúng tôi khuyến khích bạn tạo một tài khoản Gravatar. Thêm avatar vào tài khoản Gravatar sẽ giúp bình luận của bạn dễ nhận diện hơn đối với các thành viên khác.

✂️ Sao chép và 📋 Dán Emoji 💪 giúp bình luận thêm sinh động và thú vị!