
Được — nhưng không phải app nào cũng hợp. Landing page, web giới thiệu, blog hay một công cụ nhỏ ít dữ liệu thì đưa thẳng lên Cloudflare chạy rất ngon, gần như không tốn tiền. Còn phần mềm quản trị có upload ảnh, báo cáo nặng, job chạy nền hay Postgres đầy đủ thì VPS vẫn hợp lý hơn, với Cloudflare đứng phía trước làm cổng bảo vệ.
Mua tên miền ở Cloudflare thì bị ràng buộc gì?
Cloudflare Registrar bán tên miền đúng giá gốc, không cộng lãi. Đổi lại, tên miền mua ở đó bắt buộc dùng DNS của Cloudflare — không chuyển nameserver sang nơi khác được.
Nghe như bị trói, nhưng thực tế không vướng gì. DNS giống cuốn danh bạ: ai gõ tên miền của bạn thì tra trong đó để biết đi tới máy nào. Bạn vẫn khai bản ghi A trỏ về IP của VPS bình thường. Mua tên miền ở Cloudflare không đồng nghĩa với phải chạy app ở Cloudflare.
Cloudflare cho chạy app kiểu gì?
Nền tảng chạy code của Cloudflare tên là Workers. Code không nằm trên một máy chủ cố định mà được nhân bản ra mạng biên toàn cầu — khách ở Hà Nội thì code chạy ở điểm gần Hà Nội, khách ở Mỹ chạy ở điểm gần họ. Đây là kiểu "serverless": không có máy chủ để quản lý, không cài đặt, không vá lỗi hệ điều hành.
Giao diện được phục vụ bằng Workers static assets hoặc Pages. Next.js chạy được qua adapter OpenNext (@opennextjs/cloudflare) — nhưng môi trường chạy không phải Node.js đầy đủ, chỉ tương thích một phần, thư viện nào gọi sâu vào hệ thống rất dễ gãy.
Về giá: gói miễn phí khoảng 100.000 lượt gọi mỗi ngày, kèm giới hạn thời gian CPU cho mỗi lượt rất ngắn; gói trả phí từ khoảng 5 USD/tháng. Đây là giá tham khảo — kiểm lại trang giá Cloudflare trước khi chọn, vì các nền tảng này đổi gói thường xuyên. Cloudflare còn có Containers để chạy Docker, tính phí theo mức dùng; nếu định dựa vào nó thì xem lại trạng thái và giá hiện tại.
Database trên Cloudflare: D1, KV, R2, Hyperdrive
Lên Cloudflare thì không có chỗ cắm Postgres như trên máy chủ thường. Thay vào đó là một bộ dịch vụ riêng:
- D1 — database SQLite dạng serverless, hợp app nhỏ và vừa, mỗi database trần dung lượng cỡ 10 GB. Gần như không phải quản trị gì.
- KV — kho key-value đọc cực nhanh, dùng cho cấu hình và cache. Không thay được database quan hệ.
- R2 — nơi lưu file và ảnh, không tính phí băng thông tải ra. Rất hợp site nhiều ảnh.
- Durable Objects — giữ trạng thái thời gian thực, kiểu phòng chat hay bảng cộng tác nhiều người.
- Hyperdrive — cầu nối để Workers dùng Postgres/MySQL đặt ở nơi khác (VPS của bạn hoặc một dịch vụ database managed). Đây là chi tiết nhiều người bỏ sót: nó mở ra kiểu làm lai, giao diện trên Cloudflare còn dữ liệu vẫn nằm trong Postgres đầy đủ ở VPS.

Những thứ Cloudflare không làm được
Đây là phần quyết định bạn đi đường này được hay không:
- Không có ổ đĩa lâu dài. Ảnh người dùng tải lên phải đẩy sang R2, không ghi xuống "thư mục uploads" như máy chủ thường.
- Thư viện native không chạy. Ví dụ
sharp— thư viện xử lý ảnh phổ biến nhất — không dùng được trên Workers. App cần nén ảnh, tạo thumbnail, đóng watermark phải tìm cách khác. - Không có tiến trình chạy nền lâu. Có Cron Triggers để hẹn giờ, nhưng vẫn bị trần thời gian CPU. Việc nặng kiểu xuất báo cáo rất dài hay gọi AI hàng loạt dễ bị cắt giữa chừng.
- Không SSH, không chạy công cụ dòng lệnh. Bạn không "vào máy" xem log hay chạy lệnh khôi phục dữ liệu bằng tay.
- Phải viết theo API riêng. Code gọi thẳng D1, KV, R2 theo cách của Cloudflare. Muốn chuyển đi nơi khác thì phải viết lại kha khá — đây chính là rủi ro khoá nền tảng.
VPS khác ở đâu?
VPS là máy chủ ảo bạn thuê trọn — có hệ điều hành, ổ đĩa, quyền root. Hình dung như thuê nguyên gian xưởng: kê máy gì, chạy ca đêm ra sao là quyền của bạn. Cài thêm công cụ như Dokploy là có luôn kiểu triển khai "đẩy code lên là tự build, tự chạy", chạy được Docker, Postgres, Redis, cron, worker nền, worker AI, ghi ảnh thẳng xuống ổ đĩa.
Cái giá phải trả: chi phí cố định hằng tháng dù có khách hay không, và tự lo cập nhật bảo mật, sao lưu, giám sát, nâng cấp. Một máy cũng là một điểm hỏng — máy sập là cả app sập. Khách ở xa truy cập chậm hơn nếu không có CDN đứng trước.
Về database, Postgres trên VPS là bản đầy đủ: transaction, trigger, jsonb, index phức tạp, không trần dung lượng ngoài ổ đĩa. Đổi lại, backup là việc của bạn — không ai làm thay.
Bảng so sánh nhanh
| Tiêu chí | Cloudflare (Workers) | VPS (ví dụ cài Dokploy) |
|---|---|---|
| Chi phí | Gói miễn phí rộng, trả phí từ ~5 USD/tháng theo mức dùng | Cố định hằng tháng/năm, ít hay nhiều khách đều trả như nhau |
| Tốc độ | Chạy ở mạng biên gần khách, nhanh đều toàn cầu | Phụ thuộc vị trí máy; khách xa chậm hơn nếu không có CDN |
| Quyền kiểm soát | Chỉ trong khuôn nền tảng cho phép | Toàn quyền máy chủ, cài gì cũng được |
| Database | D1 (SQLite, trần ~10 GB), KV; hoặc nối Postgres ngoài qua Hyperdrive | Postgres/MySQL/Redis đầy đủ, giới hạn theo ổ đĩa |
| Lưu file, ảnh | Bắt buộc dùng R2 (bù lại không tính băng thông tải ra) | Ghi thẳng xuống ổ đĩa, hoặc gắn thêm dịch vụ lưu trữ |
| Job nền & cron | Có Cron Triggers nhưng bị trần thời gian CPU | Cron, worker nền, hàng đợi chạy bao lâu cũng được |
| Bảo trì | Gần như không phải làm gì | Tự vá bảo mật, sao lưu, giám sát, nâng cấp |
| Rủi ro khoá nền tảng | Cao — code bám API riêng của Cloudflare | Thấp — Docker + Postgres bê sang nhà cung cấp khác được |

Ưu nhược từng bên, nói gọn
Cloudflare mạnh ở: chi phí khởi điểm gần bằng không, tốc độ đều cho khách ở mọi nơi, không phải nuôi máy chủ, tự co giãn khi truy cập tăng đột biến. Yếu ở: môi trường chạy bị bó, không hợp việc nặng và việc chạy lâu, càng viết sâu theo API riêng càng khó rời đi.
VPS mạnh ở: chạy gì cũng được, Postgres đầy đủ, xử lý ảnh và job nền thoải mái, đổi nhà cung cấp dễ vì mọi thứ gói trong Docker. Yếu ở: tốn tiền đều đặn, tốn công quản trị — máy hỏng hoặc quên backup là mất dữ liệu thật.
Cách kết hợp: tên miền Cloudflare + app trên VPS
Đây là cách phổ biến nhất, và cũng dễ nhất nếu bạn lỡ mua tên miền ở Cloudflare rồi:
- Khai bản ghi A trỏ về IP của VPS.
- Bật proxy — biểu tượng đám mây màu cam trong trang DNS.
- Đặt SSL ở chế độ Full (strict), cài chứng chỉ hợp lệ trên VPS.
Bật proxy xong bạn được ba thứ: CDN giúp khách xa tải nhanh hơn, lớp chắn DDoS, và IP thật của VPS được giấu đi — khách chỉ thấy IP Cloudflare. Cloudflare làm "cổng trước", VPS làm "nhà xưởng" phía sau.
Biến thể lai: frontend đặt trên Cloudflare, Postgres vẫn ở VPS, nối qua Hyperdrive. Cách này đẹp trên giấy nhưng phức tạp hơn hẳn khi vận hành, chỉ nên chọn khi đã rõ mình đánh đổi cái gì.

Chọn cái nào cho trường hợp của bạn
Landing page, web giới thiệu công ty, blog, catalogue sản phẩm. Chọn Cloudflare. Gần như không mất tiền, nhanh, không bao giờ phải nghĩ tới chuyện máy chủ đầy ổ cứng lúc nửa đêm.
Công cụ nhỏ: form đăng ký, tra cứu bảo hành, chấm công đơn giản. Cũng chọn Cloudflare, dùng D1 làm database và R2 nếu có đính kèm file. Dữ liệu còn nhỏ thì D1 thừa sức.
Phần mềm quản trị nhiều nghiệp vụ — nhân sự, kho, bán hàng, kế toán — có Postgres, upload chứng từ, xuất Excel, job chạy nền, gọi AI. Chọn VPS rồi đặt Cloudflare phía trước. Chính 5fedu.com chạy kiểu này: Next.js + PostgreSQL trên VPS bằng Dokploy, ảnh lưu ở ổ đĩa máy chủ, kèm vài worker chạy định kỳ để tự viết bài và gửi email. Đặt lên Workers là vướng ngay ở xử lý ảnh và job nền.
Có lưu dữ liệu cá nhân của khách hàng — hồ sơ nhân sự, hồ sơ bệnh án, thông tin học viên. Bên nào cũng phải biết rõ dữ liệu nằm ở đâu, ai truy cập được, backup để chỗ nào. Quy định bảo vệ dữ liệu cá nhân ở Việt Nam là thứ xem trước khi chọn hạ tầng, không phải sau.
Câu hỏi thường gặp
›Mua tên miền ở Cloudflare có bắt buộc chạy app ở Cloudflare không?
Không. Bắt buộc duy nhất là dùng DNS của Cloudflare. Bạn vẫn trỏ bản ghi A về VPS, về hosting cũ hay bất kỳ dịch vụ nào.
›App Next.js đưa lên Cloudflare được không?
Được, qua adapter OpenNext. Nhưng môi trường chạy không phải Node đầy đủ, nên rà trước danh sách thư viện: có `sharp` hay thư viện native nào khác là phải sửa.
›D1 thay được Postgres không?
App nhỏ và vừa thì đủ. D1 là SQLite nên mang theo giới hạn của SQLite, mỗi database trần cỡ 10 GB. Nghiệp vụ nhiều bảng, nhiều transaction phức tạp thì Postgres hơn hẳn.
›Dùng Cloudflare thì còn cần VPS nữa không?
App nằm trọn trong khuôn Workers thì không cần. App có việc nặng, việc chạy lâu, xử lý ảnh hoặc cần Postgres đầy đủ thì vẫn cần — khi đó Cloudflare là cổng trước, không thay thế VPS.
›Đang chạy VPS, có nên chuyển hẳn sang Cloudflare cho rẻ?
Tính cả công viết lại: chuyển sang D1, KV, R2 là sửa tầng dữ liệu, bỏ job nền, tìm cách khác cho xử lý ảnh. Tiết kiệm vài USD mỗi tháng thường không bù nổi công đó, trừ khi app vốn đã rất đơn giản.
Tác giả
Chuyên gia chuyển đổi số · Đại diện 5F Edu
Hơn 8 năm triển khai và tư vấn chuyển đổi số cho doanh nghiệp vừa và nhỏ: chuẩn hoá quy trình, xây phần mềm quản lý bằng AppSheet và web app, tự động hoá bằng N8N. Người làm kênh YouTube Nghiện AppSheet.



