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 hoạt động dựa trên 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ả tốt, ít nhất khi chạy xong 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ả bổ xung chạy trực tiếp 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 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ỉ cần 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 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, 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

Hiệu năng

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

Chạy thử tầm 1 tuần thấy hiệu quả khá tốt, cụ thể trừ thời điểm 1-3h sáng tạo backup và các trang tĩnh, tỷ lệ cache hạ xuống, còn lại đa phần trong ngày tỷ lệ cache ~ 90%

Kết luận

Plugin Cloudflare Preload Cache 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á ngu học về logic, vì vẫn preload toàn bộ site mỗi khi có sự thay đổi (đúng ra chỉ nên preload các trang liên quan), có điều hiệu quả vẫn tốt, hiệu năng theo mình đủ ổ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ị!