Tùy chỉnh cache trong plugin LiteSpeed Cache [phần 2/tài liệu hướng dẫn chính thức]

Cái tab cache phức tạp nên tôi tách làm ba phần. Đây là phần 2, chỉ nói về Purge và Excludes. Còn nếu bạn muốn đọc phần 1 thì nó ở đây. Đúng là có nhiều thông tin bổ sung các bạn à. Chúng ta vào việc luôn nhé.


Tab Purge / xóa cache

tab Purge cache

[Purge All on Upgrade / xóa tất cả cache khi có cập nhật]

  • Mặc định ON- Tùy chọn này dùng để lựa chọn có nên purge toàn bộ website khi có bất cứ plugin, theme, hoặc phần lõi của WordPress nào cập nhật hay không. Vì bạn không bao giờ biết được có gì thay đổi qua các phiên bản, nên lời khuyên là bạn để tùy chọn này là ON.

[Auto Purge Rules For Publish-Update / các quy tắc xóa tự động khi bài viết được xuất bản hoặc cập nhật]

  • Khi một post được xuất bản hay cập nhật, post và page đó không phải là thay đổi duy nhất trên website của bạn đâu. Mà còn có danh sách chuyên mục (category), danh sách thẻ tag, front page của site, và một loạt các thư mục lưu trữ cũng có thể thay đổi theo. Vì lý do đó bạn cần phải chỉ định cụ thể kiểu trang mà bạn muốn tự động purge mỗi khi post được cập nhật hay tạo mới.

Các trang cụ thể mà bạn chọn phụ thuộc vào theme của bạn và cách các bài post hiển thị trên trang của bạn.

Có một tùy chọn cho All pages (tất cả các trang), nó được vô hiệu hóa theo mặc định. Khi bạn bật cái này, tất cả các checkbox khác sẽ được bỏ qua. Chọn All pages sẽ có ý nghĩa nếu bạn không bật tùy chọn ESI, và bạn có các widget động liên-quan-đến-bài-post hiển thị trên tất cả các trang, trong phần lớn trường hợp, tốt nhất là không chọn All pages.

Để tối ưu hóa hiệu suất, admin chỉ nên check các tùy chọn cần thiết. Lấy ví dụ, với thư mục lưu trữ, nếu site chỉ có một tháng lưu trữ và không có thư mục lưu trữ theo năm hoặc theo ngày, bạn chỉ cần tick chọn “lưu trữ theo tháng / monthly archive”. Nếu trang không có thư mục theo tác giả, thì bạn không cần phải chọn nó, vì các check bổ sung sẽ làm chậm quá trình xử lý / slow down the process.


[Scheduled Purge URLs / lên lịch xóa các URL]

  • Mặc định chuỗi rỗng. Bạn có thể chỉ định một danh sách các URL (mỗi cái một dòng) sẽ được tự động purged tại một thời điểm cố định trong ngày. Điều này không cần thiết trong các trường hợp thông thường. Plugin LiteSpeed cache có các quy tắc purge thông minh xử lý được tốt trong phần lớn trường hợp. Tuy nhiên, nếu bạn có nội dung được tạo bởi nguồn bên ngoài, chẳng hạn như bạn có thể muốn purge các trang liên quan hàng ngày để đảm bảo nội dung bên ngoài hiển thị chính xác.
  • Wildcards được hỗ trợ.

Lưu ý: với các URL có wildcards, ví dụ /a*html, có thể có trì hoãn trong việc lên lịch purge lúc ban đầu. LSCache không có cách nào biết được URL nào khớp với mẫu cho đến khi lần đầu tiên các URL này được purged, hoặc cho đến khi chúng đạt đến thời hiệu hết hạn tự nhiên. Nếu bạn muốn đẩy nhanh tốc độ quá trình này, bạn có thể nhập chuỗi wildcard trong Scheduled Purge URLs, nhấn nút Save Settings, bạn sau đó có thể purge thủ công các trang liên quan nhờ vậy mà LSCache nhận ra được các URL ngay lập tức.


[Scheduled Purge Time / lên lịch thời gian xóa trang]

  • Sử dụng trường này kết hợp với cái bên trên. Nếu bạn cung cấp một danh sách URL để purge, chỉ định thời gian cụ thể mà nó nên được purged ở đây.

[Purge All Hooks / xóa tất cả các hook]

  • Giá trị mặc định một danh sách các hooks khuyến nghị. Plugin LiteSpeed cache thực thi hành động “Purge All” trên cache khi các hook WordPress nhất định đang chạy. Bạn có thể thay đổi hành vi purge cho cài đặt LiteSpeed cache bằng cách thay đổi các hook này. Lấy ví dụ, nếu bạn không muốn purge cache khi bạn tạo tag hoặc category mới, hãy loại bỏ hook crete_term khỏi danh sách. Hoặc, nếu bạn muốn purge cache mỗi khi bình luật mới được đăng trên trang, bạn có thể thêm hook comment_post
  • LiteSpeed khuyến nghị bạn Purge All khi các hook sau chạy.
switch_theme 
wp_create_nav_menu 
wp_update_nav_menu 
wp_delete_nav_menu 
create_term 
edit_terms 
delete_term 
add_link 
edit_link 
delete_link

Bạn có thể xem Code Reference của WordPress để biết danh sách các hooks khả dụng. Nhiều plugin cũng có các hooks của riêng họ mà bạn có thể reference/tham chiếu đến.


[Serve Stale / phục vụ nội dung cũ]

  • Mặc định OFF. Khi bật, cài đặt này cho phép bản sao cache (cũ) gần đây nhất của trang được dùng để phục vụ cho người dùng nếu bản sao cập nhật nhất cho cache mới chưa được tạo.

Để hiểu lý do vì sao có thể bạn muốn bất tính năng Serve Stale, hãy xem cách LiteSpeed cache xử lý purge các trang khi Serve Stale được để là OFF.

  • Một người dùng ghé thăm trang đã được purged trong cache
  • Yêu cầu gọi PHP và bắt đầu quá trình xây dựng trang
  • Hơn 100 user cùng ghé thăm trang đó trước khi PHP được xử lý xong
  • PHP được gọi 100 lần, gây ảnh hưởng xấu đến khả năng tải của máy chủ
  • Các yêu cầu của người dùng đầu tiên hoàn tất và trang có cache mới
  • Người truy cập tương lai được phục vụ cache cập nhật, mới được tạo xong

Giờ, chúng ta hãy xem điều gì xảy ra nếu Serve Stale được để là ON:

  • Người dùng ghé thăm trang vừa được purge từ cache
  • Các yêu cầu gọi PHP và bắt đầu xử lý quá trình xây dựng trang
  • Hơn 100 người dùng ghé thăm cùng trang trước khi PHP xử lý xong
  • Tất cả 100 người dùng sẽ được phục vụ bởi phiên bản cache (cũ) gần nhất nhờ vậy ảnh hưởng tối thiểu lên hiệu suất máy chủ
  • Yêu cầu của người dùng đầu tiên hoàn thành và trang có cache mới
  • Các lượt ghé thăm trong tương lai được phục vụ trang cache cập nhật vừa mới được tạo ở trên

Đây là tùy chọn có ích trên các website bận rộn, nhưng ít tác dụng hơn trên các trang không nhiều người ghé thăm.

Bạn có nên bật tính năng Serve Stale hay không? Điều đó tùy thuộc bạn đánh giá rủi ro nào dễ chấp nhận hơn trên trang web của mình: khả năng máy chủ phải tải nặng (khi để là OFF) với việc phục vụ nội dung không phải mới nhất trong một khoảng thời gian ngắn (khi để là ON).


Tab Excludes / loại trừ

tab Excludes trong LiteSpeed cache

[Do Not Cache URIs / Không cache các URI]

  • Giá trị mặc định chuỗi rỗng. Danh sách các chuỗi chứa đường dẫn này sẽ không được cache. Mỗi cái một dòng. Từng chuỗi sẽ được so sánh với biến REQUEST_URI server. Nếu nó khớp, URI sẽ không được cache. Để chỉ phần bắt đầu của chuỗi, thêm ký hiệu ^ vào phần đầu chuỗi. Để chỉ khớp chính xác, thêm ký hiệu $ vào cuối chuỗi.

Các ví dụ về khớp chuỗi. Giả sử bạn có các URI sau:

  1. /recipes/baking/
  2. /recipes/baking/cakes
  3. /recipes/baking/brownies
  4. /popular/recipes/baking/

Chuỗi /recipes/baking/ sẽ khớp với cả bốn URIs.

Chuỗi /recipes/baking/$ sẽ khớp với cái đầu tiên #1 (vì $ chỉ đến việc khớp chính xác).

Chuỗi ^/recipes/baking sẽ khớp với cái #1, #2, và #3 (vì ^ chỉ đến phần đầu của URI).

[Do Not Cache Query Strings / Không cache các chuỗi truy vấn]

  • Mặc định chuỗi rỗng (không điền gì). Bạn có thể loại bỏ việc cache các URL đi kèm với chuỗi query nhất định.

Ví dụ nếu bạn không muốn cache bất cứ trang nào được kết xuất dưới dạng scheme màu hồng, bạn có thể nhập color=purple vào danh sách (giả định URL mà bạn sử dụng để chỉ trang cần có giao diện màu purple/hồng là http://example.com/page?color=purple). Bạn có thể nhập color để chỉ rằng bạn không muốn cache bất kỳ URL nào mà màu được chỉ định, bất kể có là màu gì đi nữa.

[Do Not Cache Categories / Không cache các chuyên mục]

  • Giá trị mặc định chuỗi rỗng (empty string/không điền gì). Nếu bạn có các chuyên mục mà bạn muốn loại trừ không cache, hãy nhập slug của chuyên mục (category), mỗi cái một dòng vào trong box này.

Ví dụ: để loại trừ http://www.example.com/category/category-slug/ bạn hãy nhập vào category-slug.

Lưu ý: Nếu category slug không được tìm thấy, slug của nó sẽ được loại bỏ khỏi danh sách khi save/lưu.


[Do Not Cache Tags / không cache các tag]

  • Mặc định chuỗi rỗng. Các tag được đối xử giống như các chuyên mục: cache theo mặc định, nhưng sẽ được bỏ qua nếu slug được nhập vào (mỗi cái một dòng) trong box này.

[Do Not Cache Cookies / không cache các cookies]

  • Mặc định chuỗi rỗng. Đây là danh sách các cookies mà không nên cache. Cụ thể thì nó không cache bất cứ trang nào mà có cookie trong danh sách xuất hiện trong header của yêu cầu.

Mẹo: Tùy chọn này có thể có tiếp cận rộng hơn những gì bạn nhận ra. Nếu bạn loại trừ cookie tồn tại trên tất cả các trang của website, thế thì về cơ bản toàn bộ trang web của bạn sẽ không được cache! Do vậy hãy cẩn thận.


[Do Not Cache User Agents / Không cache các user agents]

  • Mặc định chuỗi rỗng. Chỉ định cụ thể user agents mà bạn muốn loại trừ khỏi cache. Điều này có nghĩa là nếu một người đọc yêu cầu trang từ website của bạn là một trong các user agents nằm trong danh sách này, họ sẽ không được phục vụ từ cache. Bạn có thể nhập các user agent theo tên vào trong box, mỗi cái một dòng.
  • Lưu ý là khớp chính xác một phần được phép.

[Do Not Cache Roles / không cache dựa trên vai trò]

  • Mặc định không check. Có thể có các vai trò mà bạn muốn loại trừ khỏi việc caching. Lấy ví dụ, nếu là admin đang kiểm tra các tính năng mới, bạn có thể muốn loại trừ vai trò administrator khỏi việc phục vụ cache cho đến khi bạn kiểm tra xong xuôi.

Leave a Comment