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

Vài lời của người dịch: Đây là một trong các tab quan trọng nhất trong LiteSpeed cache, bạn nào muốn tối ưu sâu cần tìm hiểu kỹ ý nghĩa của nó. Vì nội dung khá phức tạp, tôi chia làm 2 phần, phần này chỉ nói về các tab Cache, TTL, Object và Browser, các tab còn lại sẽ được nói trong phần hai.

Không dông dài nữa, chúng ta bắt đầu luôn nhé.


Tab Cache

tab Cache trong LiteSpeed Cache

[Enable Cache / Bật Cache]

  • Các giá trị ON/OFF/(Use Network Admin Setting). Đây là cấp độ thứ ba và cuối cùng cho việc bật chức năng caching của plugin. Khi được bật, plugin sẽ cache các trang trên web. Vô hiệu hóa nó sẽ dừng lại bất kỳ caching nào hiện có và purge (xóa) toàn bộ cache các mục đã cache của WordPress.
  • Với các website cài đặt đơn (single), chỉ ONOFF là khả dụng. Với các trang dạng Multisite, sẽ có tùy chọn thứ ba, Use Network Admin Setting. Tùy chọn cuối cùng này sử dụng dụng các lựa chọn từ Network Admin.

[Cache Logged-in Users / Cache người dùng đăng nhập]

  • Mặc định ON- tùy chọn này cho phép nội dung được cache cho người dùng đã đăng nhập (logged-in users). Các trang sẽ được lưu trong cache private thông qua IP/session ID.

[Cache Commenters / Cache người bình luận]

  • Mặc định ON- tùy chọn này hữu ích cho những ai cần phê duyệt bình luận của khách. Nếu tùy chọn này được đặt là ON, nó sẽ phục vụ phiên bản đã được cache của trang, điều đó có nghĩa là, người bình luận sẽ không thấy họ đang ở trạng thái xét duyệt bình luận. Nếu tắt, người bình luận sẽ được phục vụ trang động chứ không phải trang đã được cache (not be served from cache).

[Cache REST API]

  • Mặc định ON- tùy chọn này cho phép bạn cache các yêu cầu được thực hiện bởi các lời gọi của WordPress REST API.

[Cache Login Page / Cache trang đăng nhập]

  • Mặc định ON- tùy chọn này sẽ cache trang đăng nhập. Thường thì không có lý do gì để bạn bỏ chọn tùy chọn này cả (tức là nên bật). Tuy nhiên, nếu có chuyện gì đó bất thường xảy ra (ví dụ phá vỡ chức năng trang đăng nhập) bạn nên tắt tùy chọn này đi.

[Cache favicon.ico]

  • Mặc định ON- tùy chọn này sẽ cache favicon.ico nếu nó không tồn tại. Lý do của việc caching này là vì nếu file không tồn tại, nó sẽ được (bị) WordPress tải suốt vào mỗi lần tải trang. Thực hiện điều này sẽ giúp bạn tránh được lời gọi gia tăng không cần thiết.

[Cache PHP Resources / Cache các tài nguyên PHP]

  • Mặc định ON- tùy chọn này sẽ cache bất kỳ tài nguyên PHP nào được tải bởi theme. Nói chung, cái này bao gồm các tài nguyên css hoặc js tải trong PHP. Trong phần lớn trường hợp, đây là các đầu ra tĩnh, vì thế không có lý do hợp lý để phải tải PHP vào mọi lần. Nếu trong thực tế chúng cần động, thì tùy chọn này nên được để là OFF.

[Cache Mobile]

  • Mặc định OFF- tùy chọn này cho phép bạn hiển thị riêng trang html cho phiên bản di động tách với phiên bản máy bàn. Cái này ban đầu được sử dụng cho các theme không đáp ứng, nhưng cũng có thể được dùng trong các tình huống mà các widget khác nhau sẽ được tải phụ thuộc vào kiểu trình duyệt.
  • Danh sách Mobile View User Agents phải để trống khi cái này được bật.

[List of Mobule User Agents]

  • Giá trị mặc định disabled/string. Nếu Cache Mobile được để là off, hộp văn bản này sẽ có màu xám. Khi được bật, danh sách này phải được điền với danh sách tác nhân người dùng thân thiện với rewrite-rule.

[Private Cached URIs]

  • Mặc định chuỗi rỗng (empty string) – một danh sách các đường dẫn mẫu (path patterns) không nên được cache công khai. Để chỉ định phần bắt đầu của chuỗi, thêm ^ vào phần đầu. Để chỉ chuỗi khớp chính xác, thêm $ 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 chuỗi chính xác).

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


[Force Cache URIs / Buộc URI phải cache]

  • Mặc định chuỗi rỗng. Các đường dẫn bao gồm chuỗi trong danh sách SẼ được cache ở dạng công khai, bất kể là có các cài đặt “non-cacheable” xuất hiện ở các khu vực khác. Mỗi cái một dòng. Mỗi chuỗi sẽ được so sánh với biến server REQUEST_URI. Nếu nó khớp thì URI sẽ đượ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 phần cuối chuỗi.

[Force Public Cache URIs]

  • Mặc định chuỗi rỗng- các đường dẫn chứa danh sách chuỗi SẼ ĐƯỢC cache trong cache public, cho dù là các cài đặt “non-cacheable / không cache” có thể xuất hiện ở nơi khác. Mỗi cái một dòng. Từng string sẽ được so sánh với biến máy chủ REQUEST_URI. Nếu nó khớp, URI sẽ được cached. Để chỉ phần đầu của chuỗi, thêm ^ vào phần đầu của chuỗi. Để thực hiện khớp chính xác, thêm $ vào phần cuối của chuỗi.

[Drop Query String]

  • Mặc định chuỗi rỗng- tùy chọn này cho phép bạn chỉ định chuỗi query cụ thể cần phải được bỏ qua trong LSCache.
  • Một số chuỗi truy vấn, đặc biệt là những cái được dùng trong marketing hoặc phân tích (kiểu Google analytics), không có bất kỳ khác biệt nào về nội dung được hiển thị trên trang. Do vậy mà nó không cần được lưu trữ nhiều phiên bản trong cache.

Lưu ý: phương thức được dùng chỉ tương thích với LiteSpeed Enterprise v5.2.3+ mặc dù người ta có thể thêm các quy tắc thủ công cho OpenLiteSpeed trong .htaccess


Tab TTL

Tab TTL trong LiteSpeed cache

[Default Public Cache TTL]

  • Giá trị mặc định 604800. Cài đặt TTL này chi phối hầu hết các trang. Tất cả các TTL khác là dành cho kiểu trang cụ thể.
  • Giá trị mặc định tương ứng với một tuần. Các giá trị khác khả dụng bao gồm 1 giờ (3600), 1 ngày (86400), 2 tuần (1209600), vân vân. Vì hầu hết các trang không thay đổi gì sau khi đăng, bạn để TTL dài hơn có thể sẽ có ích hơn.

[Default Private Cache TTL]

  • Giá trị mặc định 1800. TTL này dùng để thiết lập độ dài thời gian cache cho các trang private (riêng tư). Các giá trị khả dụng bao gồm từ 60 đến 3600 giây.

[Default Front Page TTL]

Giá trị mặc định 1800 giây. TTL mặc định này được dùng để điều chỉnh thời gian cache của trang front page.

Lưu ý: Điều này có thể được kích hoạt bằng kiểm tra is_front_page(), hoặc bằng plugin của bên thứ ba được chọn để dùng trang font page TTL cho một trong các trang của nó. Lấy ví dụ, WooCommerce làm điều này với trang Shop/Cửa hàng.

Giá trị mặc định tương đương với 30 phút. Trang font page có xu hướng là trang được cập nhật thường xuyên nhất, nhưng cũng là trang có khả năng được truy cập nhiều nhất. Vì nhiều lý do, có thể sẽ có ích hơn khi dùng TTL ngắn thôi. Điều đấy có nghĩa là nếu site không cập nhật thường xuyên để TTL dài có thể có ích hơn.


[Default Feed TTL]

  • Giá trị mặc định 0. Cài đặt này thiết lập TTL cho feeds. Feeds là cách hay để người đọc luôn cập nhật các bài viết mới của blog. Chúng thường được thiết lập để kéo nội dung từ blog định kỳ, cái nếu không được caching sẽ là nguyên nhân gây tải lãng phí cho máy chú. Cache các trang feed sẽ được purge khi nó cập nhật và có bình luận mới, vì thế bạn được đảm bảo là nó vẫn sát thời gian thực. Các giá trị khả dụng là 0 hoặc bất cứ giá trị nào nhiều hơn. 0 để chỉ việc không cache, giá trị dưới 30 giây sẽ được thiết lập thành 30.

Default HTTP Status Code Page TTL / TTL mặc định cho các trang mã trạng thái http

403 3600 404 3600 500 3600

Đây là TTL tùy chỉnh cho các trang trả về kết quả 404, 403, 500 hoặc bất cứ mã trạng thái nào mà bạn chỉ định cụ thể.

TTL mặc định cho từng mã trạng thái là 3600 giây, tương đương với một giờ. Không có lời khuyên cụ thể chung nào cho TTL này, vì nó phụ thuộc vào điều gì thực tế xảy ra trên trang. Nếu truy cập trang 404 là một sự cố có tính phổ biến, nó có thể giúp cache trang ít nhất trong một thời gian ngắn.

Các trang trả về kết quả 403 thường cố ý, vì thế nó có thể hữu ích khi để TTL dài hơn trong phần cài đặt.

500 Errors là lỗi nghiêm trọng hơn. Caching trang này có thể làm ẩn đi vấn đề trong WordPress, vì thế đây có thể là điều bạn không muốn.


Tab Object

tab Object trong plugin LiteSpeed Cache

[Object Cache]

  • Mặc định OFF– object cache được vô hiệu hóa theo mặc định. Chọn ON để bật nó và sau đó tùy chỉnh nó thông qua các cài đặt mô tả bên dưới.
  • Status/trạng thái: thông tin ở khu vực này cho bạn biết trạng thái của cache object external. Nếu bạn thấy thông báo lỗi ở đây, hãy đọc bài cách debug cài đặt Object Cache (có thể tôi sẽ dịch sau).
  • Method/phương thức: mặc định để là memcached- nếu cache đối tượng của bạn là Memcached hoặc LSMCD hãy thiết lập Method là Memcached. Nếu cache đối tượng của bạn là Redis, hãy thiết lập Method là Redis.
  • Host: mặc định localhost- hostname hoặc địa chỉ IP được dùng bởi Memcached hoặc LSMCD cache đối tượng. Thiết lập mặc định cần phải hoạt động ổn thỏa với bạn- nếu Memcached được cài đặt thông qua TCP connection. Nếu bạn sử dụng UNIX socket, Host cần phải thiết lập thành /path/to/memcached.sock (thay thế đường dẫn thực tế được sử dụng cho cài đặt của bạn).
  • Port: mặc định 11211- con số chỉ cổng được dùng bởi object cache. Giá trị mặc định phải hoạt động ổn thỏa với bạn- nếu Memcached của bạn được thiết lập thông qua kết nối TCP. Nếu bạn sử dụng UNIX socket, Port phải được thiết lập là 0.
  • Default Object Lifetime: mặc định 360. Thời gian sống của các mục lưu trong object cache. Chúng tôi khuyến khích sử dụng thời gian tương đối ngắn để tránh việc phục vụ các kết quả cũ.
  • Username: chỉ khả dụng và cần thiết khi SASL được cài và phương thức object caching là Memcached.
  • Password: chỉ định password cụ thể khi kết nối.
  • Redis Database ID: Database sử dụng. Trường này chỉ xuất hiện khi phương thức caching object là Redis.
  • Global Groups: danh sách mặc định bao gồm users userlogins usermeta user_meta site-transient site-options site-lookup blog-lookup blog-details rss global-posts blog-id-cache. Một danh sách nhóm nên được cached ở cấp độ network.
  • Do Not Cache Groups: danh sách mặc định bao gồm comment, counts, plugins, wc_session_id. Danh sách nhóm không được đưa vào trong object cache.
  • Persistent Connection: mặc định ON. Nếu bật kết nối được giữ liên tục để Memcached nhanh hơn.
  • Cache WP Admin: mặc định để OFF. Nếu bật WordPress admin sẽ được tăng tốc, nhưng có nguy cơ từ việc thỉnh thoảng bạn nhận được dữ liệu cũ từ object cache.
  • Store Transients: Khi Cache WP Admin được để là OFF, transients không có nơi nào để đi nữa. Không có transients, bạn sẽ không nhận được các thông báo trạng thái của máy chủ (chẳng hạn như tác vụ XYZ đã hoàn thành). Bật Store Transients để nhận được các lưu ý từ máy chủ khi Cache WP admin đã bị vô hiệu hóa.

Tab Browser

LiteSpeed cache là kiểu cache toàn trang/đầy đủ (full-page). Nó phải bỏ công ra để chuyển nội dung động thành các file tĩnh dễ phục vụ hơn. Đúng là nó xử lý vấn đề tạo nội dung động rất tốt, nhưng nó cũng chỉ xử lý tạo nội dung động mà thôi. Nội dung tĩnh như ảnh, video, hoặc fonts sẽ không được đưa vào bất kỳ cache full-page nào. Và vâng, nội dung này có thể được yêu cầu từ máy chủ nhiều lần. Thí dụ như logo website của bạn. Ảnh này có khả năng được hiển thị trên tất cả các trang mà người dùng ghé thăm, điều đó có nghĩa là máy chủ có thể sẽ phải chuyển lặp đi lặp lại cùng một ảnh cho cùng người dùng khi họ duyệt web.

Đây là lúc mà vai trò của caching trình duyệt được thể hiện. Khi caching phía trình duyệt được bật, logo của bạn (bên cạnh các nội dung tĩnh khác) sẽ được lưu cục bộ (stored locally) trên thiết bị của người dùng vào lần đầu tiên có yêu cầu. Sau đó, nội dung sẽ được kéo từ lưu trữ cục bộ cho đến khi cache trình duyệt hết hạn. Hiển thị ảnh cục bộ lúc nào cũng sẽ giúp bạn dùng ít tài nguyên hơn so với chuyển ảnh thông qua internet, không thành vấn đề là kết nối của bạn nhanh như thế nào.

[Cách cài đặt]

Thông thường, caching phía trình duyệt được bật ở cấp độ máy chủ. Tuy nhiên nếu bạn không có quyền truy cập máy chủ dưới vai trò admin, bạn vẫn có thể bật caching trình duyệt thông qua plugin LiteSpeed cache ở phần cài đặt. Bạn có thể thiết lập tùy chọn này ở bất kỳ cấp độ nào có ý nghĩa nhất với website của bạn. Nếu một trong hai cấp độ được bật, thì caching phía trình duyệt sẽ được bật.

Ở cấp độ plugin

Cache phía trình duyệt

  • Khi cache phía trình duyệt được bật, các file tĩnh (như ảnh, css và video) được lưu trữ cục bộ trên thiết bị của người dùng để các lần truy cập kế tiếp nội dung được tải nhanh hơn.

Browser Cache TTL

  • Giá trị mặc định 2592000. Thời gian này được tính theo giây, các file sẽ được lưu trữ cache trình duyệt cục bộ trước khi hết hạn. Thời gian tối thiểu là 30 giây. Con số khuyến nghị là 2592000 giây- tương đương với 30 ngày.

Ở cấp độ máy chủ

  • Nếu bạn là admin của máy chủ web, bạn có thể có một số tùy chọn tăng thêm. Trong LiteSpeed Web Server Admin, điều hướng đến phần Server > General và cuộn chuột đến phần Expires Settings.

Thiết lập Enable Expires thành Yes.

Expires Default có thể được để thành số giây mà bạn muốn hoặc bỏ trống nếu bạn không muốn cung cấp hết hạn kiểu catch-all (chọn tất cả).

Lưu ý: hãy cẩn trọng với cài đặt này. Nó áp dụng cho tất cả kiểu nội dung, kể cả HTML. Điều này có thể tạo ra xung đột tiềm năng với LiteSpeed cache, và có thể dẫn đến nội dung cũ được phục vụ cho người dùng. Nếu bạn chạy LSCache, luôn để tùy chọn *Expires Default* là unset.

Thiết lập Expires by Type thành chuỗi tương tự như ví dụ ở trên, thay đổi bất kỳ kiểu file nào hoặc thời gian hết hạn mà bạn muốn. Ví dụ trên cho phép cache trình duyệt cho tất cả ảnh, css, và javascript, và nó thiết lập tất cả hết hạn là 604800 giây (tương đương với một tuần). Nếu bạn để Expires Default là rỗng (bạn nên làm như vậy nếu sử dụng LSCache), sau đó bạn phải bao gồm từng file cụ thể mà bạn muốn trình duyệt cache trong phần Expires by Type.

PS: với những ai đang dùng OpenLiteSpeed, việc chỉnh thời gian cache trình duyệt thông qua plugin sẽ không thành công, bạn có thể tham khảo bài viết này để khắc phục vấn đề: Sửa lỗi Browser Cache TTL trong OpenLiteSpeed.

Mời bạn đọc tiếp phần 2 ở đây.

Leave a Comment