Phần 8 : Cache / CDN
1.Giới thiệu:
Cloudflare giúp các website tải nhanh hơn bằng cách lưu trữ bản sao của nội dung website trên các máy chủ phân tán toàn cầu. Khi người dùng truy cập website, Cloudflare cung cấp nội dung từ trung tâm dữ liệu gần nhất, giúp giảm độ trễ và tối ưu hiệu suất.
Phân loại nội dung:
Nội dung tĩnh (Static content):
Đây là những tài nguyên không thay đổi thường xuyên, ví dụ: hình ảnh, tệp CSS, JavaScript, font chữ.
Cacheable: Cloudflare có thể lưu trữ nội dung này trong bộ nhớ đệm (cache) để phục vụ người dùng nhanh hơn mà không cần yêu cầu lại từ server gốc.
Nội dung động (Dynamic content):
Là những nội dung thay đổi liên tục tùy thuộc vào người dùng hoặc ngữ cảnh, ví dụ: trang hiển thị thông tin cá nhân, giỏ hàng.
Uncacheable: Cloudflare không lưu trữ những nội dung này vì cần được tạo mới từ server mỗi khi có yêu cầu.
Các yếu tố ảnh hưởng đến việc Cloudflare cache nội dung:
Caching levels (Cấp độ cache):
File extension (Phần mở rộng tệp):
Presence of query strings (Sự hiện diện của query string):
Origin cache-control headers (Header Cache-Control từ server gốc):
Origin headers that indicate dynamic content (Header chỉ định nội dung động):
Cache rules that bypass cache on cookie (Quy tắc cache liên quan đến cookie):
Các quy định bổ sung:
Một website sử dụng Cloudflare có cấu hình DNS bật proxy.
<img src="./imageasset.jpg" /> sẽ được cache imageasset trong trung tâm dữ liệu Cloudflare
Không cache tài nguyên từ các bên thứ ba như Facebook, Flickr:
ví dụ : <img src="https://facebook.com/photo/image.jpg" /> sẽ không được cache vì nó được lưu trữ ngoài hệ thống Cloudflare
Không cache nội dung từ nguồn không được proxy
Plans:
Minimum Browser Cache TTL (Page Rules)
2 minutes
30s
Minimum Browser Cache TTL (Cache Rules)
2 hours
1s
Default Browser Cache TTL
4 hours
4 hours
Cache Analytics
no
yes
Retention period
N/A
30 days
Cache key (Cache deception armor)
yes
yes
Cache key (Cache by device type)
yes
yes
Cache key (Sort query string)
yes
yes
Cache key (Sort Query string)
yes
yes
Cache key (Query string)
no
yes
Cache key (Headers)
no
yes
Cache key (Cookie)
no
yes
Cache key (Host)
no
yes
Cache key (User features)
no
yes
Cache Reserve
yes
yes
Cache Rule
10 rules
125 rules
Cache by status code
no
yes
Crawler Hints
yes
yes
CSAM Scanning Tool
yes
yes
Development mode
yes
yes
Minimum Edge Cache TTL
yes
yes
ETag Headers
yes
yes
Purge cache
URL
URL, Hostname, Tag, or Prefix
Query string sort
no
yes
Tiered cache
yes
yes
Tiered cache (Smart Topology)
yes
yes
Tired cache (Generic Global Topology)
no
yes
Tiered cache (Regional Tiered Cache)
no
yes
Tiered cache (Custom Topology)
no
yes
Vary for images
no
yes
2.Default cache behavior:
Cloudflare tôn trọng header cache-control của origin. Logic hoạt động của Cloudflare:
Không cache nếu:
Tài nguyên mang tính riêng tư hoặc nhạy cảm (
private,no-store, hoặcSet-Cookie).Tài nguyên yêu cầu xác thực lại mỗi lần sử dụng (
no-cache,max-age=0).Yêu cầu không phải GET (vì có thể làm thay đổi dữ liệu).
Cache nếu:
Tài nguyên được đánh dấu
publicvà có thời gian hết hạn rõ ràng (max-age > 0hoặcExpirestrong tương lai).Không có yếu tố nào ngăn cản việc cache.
Khi server gốc không gửi header Cache-Control, Cloudflare sẽ quyết định có nên cache tài nguyên hay không dựa vào HTTP status code của phản hồi từ server.
Khi cả max-age và Expires cùng được thiết lập, Cloudflare sẽ ưu tiên max-age:
3. Header của Cloudflare cache responses về:
Header CF-Cache-Status được Cloudflare sử dụng để thông báo trạng thái cache của tài nguyên.
Served by Cloudflare
HIT
Tài nguyên được tìm thấy trong bộ nhớ đệm (cache) của Cloudflare và được phục vụ trực tiếp từ cache.
STALE
Tài nguyên được phục vụ từ cache dù đã hết hạn, vì Cloudflare không thể kết nối với server gốc để lấy phiên bản cập nhật.
NONE
Tài nguyên không đủ điều kiện để được cache hoặc phản hồi không liên quan đến cache.
Một quy tắc tường lửa ứng dụng web (WAF) chặn yêu cầu trước khi cache được kiểm tra.
Redirect Rule hoặc Always Use HTTPS trước khi chuyển tới Cache
Served by Origin
DYNAMIC/BYPASS
Tài nguyên động , nhảy cảm hoặc cài đặt Cloudflare không yêu cầu cache.
MISS
Tài nguyên không có trong cache của Cloudflare và phải được yêu cầu từ server gốc.
REVALIDATED
Tài nguyên cache đã hết hạn, được xác thực lại và vẫn hợp lệ. If-Modified-Since header hoặcIf-None-Match header.
EXPIRED
Tài nguyên đã hết hạn và được yêu cầu từ server gốc.
Last updated