📢 Bài viết có chứa link affiliate. Bạn không trả thêm phí khi mua qua link của mình.
Năm ngoái mình đang chạy 3 websites trên shared hosting của một nhà cung cấp giá rẻ Việt Nam. TTFB trung bình 1.8–2.4 giây, uptime 99.1%, và cứ mỗi lần traffic tăng nhẹ là site lại slow down. Sau 6 tháng chịu đựng, mình quyết định migrate sang Hetzner VPS và kết quả thực sự bất ngờ.
👉 Xem VPS phù hợp để bắt đầu: So sánh VPS tốt nhất 2026 →
Tại Sao Mình Chọn Hetzner?
Sau khi research kỹ, mình chọn Hetzner vì 3 lý do:
- Giá cực tốt: CX22 (2 vCPU, 4GB RAM) chỉ €4.35/tháng — rẻ hơn Vultr/DigitalOcean cùng spec ~40%
- NVMe SSD mặc định: Hetzner dùng NVMe cho tất cả VPS, không phải SATA như một số đối thủ
- Data center Đức/Phần Lan: Latency từ Việt Nam ~180–220ms, ổn cho sites không phụ thuộc real-time
Stack Kỹ Thuật Mình Dùng
- OS: Ubuntu 22.04 LTS
- Web server: Nginx 1.24
- PHP: 8.2-FPM với OPcache
- Database: MariaDB 10.11
- Cache: Redis (object cache) + FastCGI Cache (page cache)
- CDN: Cloudflare Free (proxy + cache rules)
- SSL: Let’s Encrypt via Certbot
Quy Trình Migration Từng Bước
Bước 1: Tạo VPS Hetzner (15 phút)
Đăng ký Hetzner Cloud, tạo server CX22, chọn Datacenter Nuremberg (EU-CENTRAL, latency tốt nhất với Asia). Giá €4.35/tháng, thanh toán hourly nên test không sợ tốn kém.
Bước 2: Cài LEMP Stack (45 phút)
SSH vào server, chạy các lệnh cài Nginx, MariaDB, PHP 8.2-FPM. Cấu hình Nginx với worker_processes auto và worker_connections 1024. Quan trọng: enable OPcache với opcache.memory_consumption=256.
Bước 3: Cấu hình FastCGI Cache cho WordPress
Tạo thư mục /var/cache/nginx, cấu hình fastcgi_cache_path với inactive=60m và max_size=2g. Exclude cache cho /wp-admin, logged-in users, và WooCommerce checkout. Đây là bước quan trọng nhất giúp TTFB giảm từ 1.8s xuống dưới 100ms.
Bước 4: Setup Redis Object Cache
Cài Redis và plugin Redis Object Cache cho WordPress. Mặc dù FastCGI cache đã handle page cache, Redis giúp tốc độ DB queries cho dynamic content như WooCommerce.
Bước 5: Migration Database và Files
Dùng WP-CLI để export database, rsync files qua SSH. Tổng thời gian migrate 1 site ~20 phút.
Bước 6: Cloudflare DNS và Proxy
Chuyển nameserver về Cloudflare, enable proxy (orange cloud), setup cache rules: cache everything cho static pages, bypass cache cho /wp-admin và /wc-api/*.
Kết Quả Thực Tế: Trước vs Sau
| Chỉ số | Shared Hosting (Trước) | Hetzner VPS (Sau) | Cải thiện |
|---|---|---|---|
| TTFB (cached) | 1.8–2.4s | 45–80ms | 📉 -96% |
| TTFB (uncached) | 2.4–3.5s | 280–400ms | 📉 -88% |
| PageSpeed Mobile | 52–61 | 88–94 | 📈 +400% |
| Uptime (3 tháng) | 99.1% | 99.98% | 📈 +0.88% |
| Chi phí/tháng | $15 (3 sites) | €4.35 + €2 backup | 📉 -60% |
| Traffic chịu được | ~500 concurrent | ~3,000 concurrent | 📈 +6x |
Sự Cố Thực Tế Và Cách Xử Lý
Sự cố 1: PHP-FPM hết pool connections sau traffic spike. Fix: tăng pm.max_children từ 10 lên 25, điều chỉnh pm.max_spare_servers.
Sự cố 2: Cloudflare cache stale sau khi update post. Fix: cài plugin Cloudflare Cache Purge, tự động purge khi publish/update.
Sự cố 3: MariaDB crash sau 48 giờ do RAM không đủ. Fix: giảm innodb_buffer_pool_size xuống 512MB, thêm 2GB swap.
Khi Nào KHÔNG Nên Tự Quản Lý VPS?
- Bạn không có thời gian theo dõi server logs và bảo mật
- Revenue từ site dưới $200/tháng — ROI không xứng với công sức
- Bạn không biết SSH cơ bản và không muốn học
Kết Luận
Migrate sang Hetzner VPS với stack LEMP + Redis + Cloudflare là quyết định đúng đắn nhất mình từng làm cho infrastructure. TTFB giảm 96%, PageSpeed tăng lên 88–94, và chi phí giảm 60% so với shared hosting cũ.
Thời gian setup ban đầu ~4 giờ, nhưng maintenance sau đó chỉ cần 1–2 giờ/tháng. Trade-off là bạn cần hiểu Linux cơ bản và không ngại terminal.
Đánh giá: ⭐⭐⭐⭐⭐ (5/5) — Tốt nhất cho developer/blogger muốn performance cao với chi phí thấp.
👉 Bắt đầu với VPS của bạn: Nhận ưu đãi VPS tại đây →