Quay lại danh sách
Tin tức công nghệ

Hướng Dẫn Deploy Ghost CMS Trên Cụm VPS Kết Hợp Cloudflare: Tự Động Xóa Cache Khi Xuất Bản Bài Viết

29 tháng 5, 2026

Giới thiệu về giải pháp Ghost CMS và Cloudflare cho doanh nghiệp

Trong kỷ nguyên số, tốc độ tải trang và trải nghiệm người dùng là hai yếu tố cốt lõi quyết định sự thành bại của một nền tảng nội dung. Ghost CMS đã và đang trở thành lựa chọn hàng đầu của các doanh nghiệp nhờ vào hiệu suất vượt trội, giao diện tối giản và khả năng tối ưu hóa SEO tuyệt vời so với các nền tảng truyền thống như WordPress. Tuy nhiên, để vận hành Ghost CMS một cách mượt mà nhất trên cụm VPS (Virtual Private Server), việc kết hợp với mạng phân phối nội dung (CDN) của Cloudflare là điều vô cùng cần thiết.

Mặc dù Cloudflare giúp tăng tốc độ truy cập đáng kể nhờ cơ chế lưu trữ bộ nhớ đệm (Caching), nó lại vô tình tạo ra một thách thức: Làm thế nào để cập nhật nội dung mới ngay lập tức đến người đọc khi bài viết được xuất bản? Bài viết này sẽ hướng dẫn bạn chi tiết cách deploy Ghost CMS trên cụm VPS và cấu hình Webhook tự động xóa Cache Cloudflare một cách chuyên nghiệp.

---

Tại sao nên kết hợp Ghost CMS, Cụm VPS và Cloudflare?

Trước khi đi vào chi tiết kỹ thuật, hãy cùng điểm qua những lợi ích chiến lược mà mô hình này mang lại cho doanh nghiệp của bạn:

  • Tối ưu chi phí hạ tầng: Ghost CMS được viết bằng Node.js, tiêu tốn cực kỳ ít tài nguyên RAM và CPU so với các CMS chạy PHP. Kết hợp với cụm VPS giúp bạn dễ dàng mở rộng quy mô (Scale-out) khi lượng truy cập tăng đột biến.
  • Bảo mật cấp cao: Cloudflare đóng vai trò như một tấm lá chắn vững chắc, ẩn địa chỉ IP thật của VPS, ngăn chặn các cuộc tấn công DDoS và khai thác lỗ hổng phần mềm.
  • Tốc độ tải trang dưới 1 giây: Nhờ hệ thống Edge Server toàn cầu của Cloudflare, dữ liệu tĩnh (HTML, CSS, JS, hình ảnh) được phân phối từ vị trí gần người dùng nhất.
---

Quy trình triển khai Ghost CMS trên cụm VPS

Bước 1: Chuẩn bị môi trường và cài đặt Ghost CLI

Đầu tiên, bạn cần chuẩn bị một hoặc một cụm VPS chạy hệ điều hành Ubuntu Server (khuyến nghị phiên bản LTS mới nhất). Hãy đảm bảo bạn đã trỏ tên miền về Cloudflare và cấu hình các bản ghi A/AAAA cần thiết.

Kết nối SSH vào VPS và cập nhật hệ thống bằng lệnh:

sudo apt update && sudo apt upgrade -y

Tiếp theo, tiến hành cài đặt Node.js, MySQL Server và Ghost-CLI - công cụ quản lý chính thức của Ghost:

  1. Cài đặt Node.js (phiên bản được Ghost hỗ trợ).
  2. Cài đặt và cấu hình bảo mật cho MySQL.
  3. Cài đặt Ghost-CLI toàn cục qua NPM: sudo npm install -g ghost-cli@latest

Bước 2: Cài đặt Ghost CMS

Tạo một thư mục riêng biệt cho website của bạn và cấp quyền sở hữu cho người dùng (không dùng quyền root):

sudo mkdir -p /var/www/ghost
sudo chown : /var/www/ghost
cd /var/www/ghost

Chạy lệnh cài đặt tự động: ghost install. Ghost-CLI sẽ tự động thiết lập cơ sở dữ liệu, tải mã nguồn, cấu hình Nginx làm Reverse Proxy và cài đặt chứng chỉ SSL miễn phí từ Let's Encrypt.

---

Cấu hình Cloudflare Caching tối ưu cho Ghost CMS

Sau khi Ghost đã hoạt động ổn định trên VPS, bạn cần đăng nhập vào bảng điều khiển Cloudflare để thiết lập các quy tắc tối ưu hóa Cache (Page Rules hoặc Cache Rules).

Thiết lập Cache Everything cho trang công khai

Để tận dụng tối đa sức mạnh của CDN, chúng ta cần ép Cloudflare cache toàn bộ trang web kể cả các trang HTML động. Tạo một Cache Rule với điều kiện:

  • URL định tuyến: [example.com/](https://example.com/)*
  • Cấu hình: Chọn Cache Everything và thiết lập thời gian Edge Cache TTL là 7 ngày hoặc 1 tháng.

Bỏ qua Cache cho trang quản trị (Admin Dashboard)

Lưu ý quan trọng: Bạn tuyệt đối không được cache trang quản trị vì điều này sẽ gây lỗi hệ thống dữ liệu. Tạo một quy tắc ưu tiên cao hơn:

  • URL định tuyến: [example.com/ghost/](https://example.com/ghost/)*
  • Cấu hình: Chọn Bypass Cache.
---

Giải pháp tự động xóa Cloudflare Cache bằng Webhook của Ghost

Khi bật tính năng "Cache Everything", bài viết mới hoặc các chỉnh sửa của bạn sẽ không hiển thị ngay cho người dùng do Cloudflare vẫn lưu bản sao cũ. Chúng ta sẽ giải quyết triệt để vấn đề này bằng cách sử dụng tính năng Integrations (Webhooks) tích hợp sẵn trong Ghost kết hợp với Cloudflare API.

Bước 1: Lấy thông tin API từ Cloudflare

Bạn cần chuẩn bị 3 thông tin quan trọng sau từ tài khoản Cloudflare của mình:

  1. Zone ID: Hiển thị tại trang tổng quan (Overview) của tên miền.
  2. Account ID: Hiển thị cùng vị trí với Zone ID.
  3. Cloudflare API Token: Truy cập vào My Profile -> API Tokens -> Tạo một Token mới với quyền Zone.Cache Purge cho tên miền cụ thể.

Bước 2: Tạo Worker hoặc Script trung gian để xử lý Webhook

Ghost gửi Webhook dưới dạng mã hóa riêng, trong khi Cloudflare yêu cầu một cấu trúc JSON cụ thể để thực hiện lệnh xóa cache (Purge Cache). Cách chuyên nghiệp nhất là sử dụng một dịch vụ trung gian như Cloudflare Workers (Miễn phí) hoặc một đoạn script Node.js/Python nhỏ chạy ngay trên VPS để tiếp nhận tín hiệu từ Ghost và chuyển tiếp sang Cloudflare API.

Đoạn mã xử lý sẽ gửi một yêu cầu HTTP POST đến Cloudflare endpoint:

[https://api.cloudflare.com/client/v4/zones/](https://api.cloudflare.com/client/v4/zones/){ZONE_ID}/purge_cache

Với dữ liệu phần thân (Body) yêu cầu xóa toàn bộ: {"purge_everything": true} hoặc tối ưu hơn là chỉ xóa các đường dẫn cụ thể được gửi từ payload của Ghost.

Bước 3: Cấu hình Webhook trên giao diện Ghost Admin

Sau khi thiết lập xong đầu nhận proxy, hãy làm theo các bước sau:

  • Truy cập vào Ghost Admin -> Settings -> Integrations.
  • Chọn Add custom integration và đặt tên (ví dụ: "Cloudflare Auto Purge").
  • Nhấp vào Add Webhook.
  • Event: Chọn Site changed (publish, unpublish, edit) để kích hoạt mỗi khi có sự thay đổi nội dung.
  • Target URL: Điền đường dẫn URL của Worker hoặc script xử lý mà bạn đã thiết lập ở bước trước.
  • Nhấn Save để hoàn tất.
---

Kiểm tra và đánh giá hiệu năng hệ thống

Để đảm bảo hệ thống vận hành hoàn hảo, hãy thực hiện một bài kiểm tra thực tế. Viết một bài viết thử nghiệm trên trang quản trị Ghost và nhấn Xuất bản (Publish). Ngay lập tức, mở một trình duyệt ẩn danh khác và truy cập trang chủ.

Sử dụng công cụ Developer Tools (F12) -> tab Network, kiểm tra HTTP Header của trang web. Nếu bạn thấy thuộc tính cf-cache-status: HIT ở lần tải thứ hai và nội dung mới vẫn hiển thị chính xác, xin chúc mừng: Bạn đã cấu hình thành công cụm hệ thống tối ưu hoàn chỉnh.

Lời kết

Việc kết hợp Ghost CMS với cụm VPS và giải pháp tự động hóa Cloudflare Cache Purge mang lại một nền tảng xuất bản nội dung số mạnh mẽ, an toàn và có tốc độ tối ưu ở mức tối đa. Doanh nghiệp của bạn giờ đây có thể tự tin đón nhận hàng triệu lượt truy cập cùng lúc mà không lo lắng về vấn đề quá tải máy chủ hay độ trễ hiển thị thông tin. Hãy triển khai ngay hôm nay để nâng tầm trải nghiệm số cho khách hàng của bạn!

Hướng Dẫn Deploy Ghost CMS Trên Cụm VPS Kết Hợp Cloudflare: Tự Động Xóa Cache Khi Xuất Bản Bài Viết | DPTCloud