Bài toán khi không có Cloudflare
Website đang chạy thẳng trên server, không có gì đứng trước. Điều đó có nghĩa là:
- DNS trỏ thẳng về IP server — bất kỳ ai cũng biết IP thật của bạn
- Static file, image, CSS, JS đều load từ server của bạn — tốn bandwidth và thêm latency với user ở xa
- SSL phải tự cài, tự gia hạn cert — quên gia hạn là website đỏ cảnh báo
- Server nhận trực tiếp mọi request, kể cả flood traffic từ bot và attacker
Cloudflare đứng ở giữa, xử lý cả 4 vấn đề này — và phần lớn là miễn phí.
1. DNS — nhanh hơn và ẩn IP thật
DNS bình thường hoạt động như thế nào
Khi user gõ yoursite.com, máy của họ hỏi DNS server: "IP của domain này là gì?" DNS server trả về IP, browser kết nối trực tiếp vào IP đó.
Vấn đề: DNS lookup thêm latency, và IP server của bạn bị lộ công khai.
Cloudflare DNS làm khác gì
Cloudflare vận hành một trong những mạng DNS lớn nhất thế giới với hơn 300 edge location. Khi dùng Cloudflare làm nameserver:
- DNS query được resolve tại edge location gần user nhất — thường dưới 10ms
- Hỗ trợ Anycast — cùng một IP nhưng route đến server gần nhất tự động
- Khi bật Proxy (biểu tượng đám mây màu cam): Cloudflare ẩn IP thật của server, user chỉ thấy IP của Cloudflare — bảo vệ origin khỏi bị tấn công trực tiếp
Proxy vs DNS only
| DNS Only (đám mây xám) | Proxied (đám mây cam) | |
|---|---|---|
| IP hiển thị | IP server thật | IP Cloudflare |
| CDN | Không | Có |
| DDoS protection | Không | Có |
| SSL termination | Tại server | Tại Cloudflare |
| Dùng khi | Mail server, SSH, FTP | Website, API |
Lưu ý quan trọng: không bật Proxy cho record MX, mail subdomain hoặc bất kỳ service nào cần IP thật để hoạt động (VPN, game server, FTP). Chỉ Proxy cho record A/CNAME của website và API.
Propagation nhanh hơn
Cloudflare cho phép đặt TTL thấp tới 1 phút cho DNS record, trong khi nhiều DNS provider khác tối thiểu là 5–30 phút. Khi cần đổi server hoặc failover, thay đổi có hiệu lực gần như ngay lập tức.
2. CDN — cache static asset ở edge, giảm tải origin
CDN là gì trong thực tế
CDN (Content Delivery Network) lưu bản sao của static file — image, CSS, JS, font, video — tại nhiều server phân tán khắp nơi. User ở Hà Nội load file từ Singapore thay vì từ server đặt ở Frankfurt.
Khi bật Proxy trong Cloudflare, CDN tự động hoạt động — không cần config thêm gì.
Cloudflare cache những gì mặc định
Cloudflare tự cache các file theo extension:
- Image:
.jpg,.png,.gif,.webp,.svg,.ico - Code:
.css,.js,.woff,.woff2 - Document:
.pdf,.txt - Không cache mặc định: HTML, API response, cookie-based content
Mỗi request đến edge Cloudflare sẽ được check:
- HIT: file đã có trong cache → trả về ngay, không đụng đến server của bạn
- MISS: chưa có → lấy từ origin, lưu vào cache cho lần sau
- EXPIRED: hết TTL → lấy lại từ origin
Tại sao CDN quan trọng với origin server
Không có CDN, mỗi lần user load trang là một request về server. Với 1.000 user đồng thời mở trang có 20 static asset mỗi người, server nhận 20.000 request/giây chỉ cho file tĩnh.
Với CDN, phần lớn request được phục vụ từ edge — server chỉ nhận request cho nội dung động (API, HTML render).
Cache rule tùy chỉnh
Cloudflare Dashboard → Caching → Cache Rules
Ví dụ cache toàn bộ HTML cho trang tĩnh:
- If:
URI Pathmatches/blog/* - Then: Cache Eligibility → Eligible for cache, Edge TTL → 1 hour
Hoặc bypass cache cho trang admin:
- If:
URI Pathstarts with/admin - Then: Cache Eligibility → Bypass cache
Page Speed với Cloudflare
Trong tab Speed, Cloudflare có thêm một số tối ưu miễn phí:
- Auto Minify: tự nén HTML, CSS, JS (bỏ whitespace, comment)
- Brotli: nén file trả về bằng Brotli thay vì gzip — tỷ lệ nén tốt hơn ~20%
- Early Hints: gửi header
103 Early Hintsđể browser preload resource sớm hơn
3. SSL — HTTPS tự động, không cần tự quản lý cert
Vấn đề với SSL truyền thống
Tự quản lý SSL cert có nghĩa là:
- Mua hoặc dùng Let's Encrypt, setup certbot, cron job gia hạn
- Quên gia hạn → cert expire → user thấy cảnh báo bảo mật → mất trust
- Phải config nginx/apache đúng để serve HTTPS
- Wildcard cert tốn tiền hoặc phức tạp khi setup
Universal SSL của Cloudflare
Khi thêm domain vào Cloudflare và bật Proxy, Cloudflare tự cấp SSL cert miễn phí cho domain và *.domain.com (wildcard). Cert tự gia hạn, không cần làm gì thêm.
User truy cập qua HTTPS đến edge Cloudflare. Từ Cloudflare về server của bạn là kết nối riêng biệt.
Các chế độ SSL
Cloudflare Dashboard → SSL/TLS → Overview
| Mode | Mô tả | Dùng khi |
|---|---|---|
| Off | Không có SSL | Không bao giờ |
| Flexible | HTTPS từ user → Cloudflare, HTTP từ Cloudflare → server | Server chưa có cert nhưng muốn HTTPS với user |
| Full | HTTPS cả hai chiều, nhưng không verify cert server | Server có cert self-signed |
| Full (Strict) | HTTPS cả hai chiều, verify cert server hợp lệ | Server có cert hợp lệ (Let's Encrypt hoặc CA khác) |
Khuyến nghị: dùng Full (Strict) nếu server đã có cert. Flexible tạo ra lỗ hổng vì kết nối từ Cloudflare về origin là HTTP không mã hóa.
Force HTTPS
SSL/TLS → Edge Certificates → Always Use HTTPS → On
Tự redirect toàn bộ HTTP request sang HTTPS. Không cần cấu hình redirect trong nginx hay Apache.
HSTS
SSL/TLS → Edge Certificates → HTTP Strict Transport Security (HSTS)
Bật HSTS để browser nhớ "site này luôn dùng HTTPS" và không bao giờ thử HTTP nữa, ngay cả khi user gõ http://. Tăng bảo mật và giảm một round trip redirect.
4. DDoS Protection — chặn trước khi traffic đến server
DDoS là gì trong thực tế
DDoS (Distributed Denial of Service) là tấn công bằng cách gửi lượng request khổng lồ từ nhiều nguồn khác nhau để làm server quá tải và không phục vụ được user thật.
Có 3 tầng tấn công phổ biến:
- Layer 3/4 (Network/Transport): flood UDP, TCP SYN flood — làm nghẽn băng thông
- Layer 7 (Application): flood HTTP request — làm server tốn CPU xử lý
- Slowloris: mở nhiều connection rồi gửi request cực chậm để chiếm hết thread
Cloudflare DDoS Protection hoạt động thế nào
Vì Cloudflare đứng trước server của bạn, traffic phải đi qua Cloudflare trước. Cloudflare phân tích traffic real-time và filter trước khi forward về origin:
- Phát hiện pattern bất thường (spike đột ngột, IP từ botnet đã biết, request signature lạ)
- Tự động block hoặc challenge traffic độc hại
- Capacity hấp thụ DDoS của Cloudflare là >100 Tbps — lớn hơn hầu hết attack có thể tạo ra
- Origin server chỉ nhận traffic sạch
Tất cả điều này xảy ra tự động ở plan Free, không cần config gì.
Under Attack Mode
Khi phát hiện đang bị tấn công nặng:
Cloudflare Dashboard → Overview → Under Attack Mode (biểu tượng lửa)
Bật chế độ này khiến Cloudflare thêm một JavaScript challenge cho tất cả request trước khi cho qua. Bot thông thường không pass được, user thật thấy màn hình loading 5 giây rồi vào được bình thường.
Chỉ bật khi thực sự đang bị tấn công — vì ảnh hưởng đến trải nghiệm user và crawl của search engine.
Rate Limiting
Security → WAF → Rate Limiting Rules
Giới hạn số request từ một IP trong khoảng thời gian nhất định:
- Ví dụ: tối đa 100 request/phút cho
/api/* - Quá giới hạn → trả về 429 hoặc show challenge
- Bảo vệ API endpoint khỏi scraping và brute force
Rate Limiting cơ bản có ở Free plan với giới hạn nhất định. Rule phức tạp hơn cần plan trả phí.
WAF (Web Application Firewall)
Security → WAF
Cloudflare Managed Rules block các tấn công phổ biến: SQL injection, XSS, path traversal — dựa trên ruleset được cập nhật liên tục. Plan Free có ruleset giới hạn, Pro trở lên có full ruleset.
Thứ tự bật khi mới thêm domain vào Cloudflare
- Đổi nameserver về Cloudflare — bước bắt buộc để mọi thứ hoạt động
- Bật Proxy cho record
A/CNAMEcủa website (đám mây cam) - SSL → Full (Strict) nếu server đã có cert, hoặc Full nếu chưa
- Always Use HTTPS → On
- Auto Minify + Brotli → bật trong Speed settings
- Kiểm tra site vẫn load đúng sau khi Proxy bật
Những thứ Cloudflare Free không có
Để set kỳ vọng đúng:
- Analytics chi tiết: Free plan chỉ có 24 giờ dữ liệu
- Custom Cache Rules nâng cao: giới hạn ở Free
- Load Balancing: cần plan trả phí
- WAF full ruleset: Free chỉ có ruleset cơ bản
- Priority support: không có ở Free
- Bot Management nâng cao: cần Enterprise
Với phần lớn website và app cá nhân hoặc startup nhỏ, Free plan đã đủ dùng cho cả 4 tính năng trên.