Một VPS chạy WordPress cho website Việt mang lại thứ mà shared hosting khó đáp ứng: CPU và RAM riêng, toàn quyền chỉnh PHP và cache, và được tự chọn nơi đặt máy chủ. Bài này đi qua ba quyết định có ảnh hưởng lớn nhất với một website mà phần lớn khách truy cập dùng mạng Viettel, VNPT hay FPT: đặt máy chủ ở đâu, chọn cấu hình bao nhiêu, và dựng một bộ LEMP (Linux, Nginx, MariaDB, PHP) gọn nhẹ kèm cache để trang vẫn nhanh khi lượng truy cập tăng.
Nói rõ ngay từ đầu: Cloudj không có máy chủ tại Việt Nam. Các vị trí của Cloudj gần người đọc Việt nhất là Singapore, Hong Kong và Tokyo. Phần còn lại của bài giải thích cách chọn giữa ba nơi này và cách dựng WordPress để khoảng cách thêm vào ảnh hưởng ít nhất có thể.
Đặt VPS ở Singapore, Hong Kong hay Tokyo?
Máy chủ đặt ngoài Việt Nam sẽ xa người dùng hơn so với một nhà cung cấp trong nước: truy cập từ thuê bao Viettel, VNPT hay FPT phải đi qua tuyến quốc tế, và chất lượng phụ thuộc vào tuyến của từng nhà mạng ở từng thời điểm. Với WordPress, điều này thường xử lý được vì một trang đã cache chỉ cần vài lượt khứ hồi, nhưng nên đo thực tế thay vì đoán.
Ba vị trí gần nhất của Cloudj có thế mạnh khác nhau:
- Singapore là trung tâm khu vực Đông Nam Á. Hợp với website có người đọc ở Việt Nam và cả Thái Lan, Malaysia, Indonesia hay Philippines.
- Hong Kong nằm về phía đông bắc Việt Nam, đáng cân nhắc khi nhiều người đọc ở miền Bắc, hoặc khi website phục vụ thêm người đọc ở Hong Kong, Đài Loan hay Hoa Nam.
- Tokyo xa hơn, nhưng là lựa chọn hợp lý khi website có cả người đọc ở Nhật Bản hay Hàn Quốc, hoặc khi kết quả đo cho thấy tuyến từ nhà mạng của khách bạn đi Tokyo tốt nhất.
Cách chọn:
- Tạo một máy chủ nhỏ thanh toán theo giờ ở hai hoặc ba vị trí trên.
- Nhờ vài người đọc hoặc đồng nghiệp dùng các nhà mạng khác nhau (Viettel, VNPT, FPT, mạng di động) chạy
pingvàmtrtới từng máy, tốt nhất vào buổi tối khi mạng đông nhất. Bài đo độ trễ VPS bằng ping và mtr hướng dẫn cách đọc kết quả. - Giữ vị trí cho kết quả thấp và ổn định nhất, xóa các máy còn lại. Máy chủ theo giờ bị tính phí khi còn tồn tại, kể cả khi đã tắt.
Hướng dẫn VPS châu Á và bài so sánh Singapore, Hong Kong và Tokyo phân tích kỹ hơn các đánh đổi. Nếu website bắt buộc phải đặt trong nước, chẳng hạn do hợp đồng hay chính sách, máy chủ Cloudj không phù hợp và bạn cần một nhà cung cấp tại Việt Nam.
Chọn cấu hình VPS chạy WordPress bao nhiêu là đủ
Bản thân WordPress khá nhẹ. Thứ ngốn RAM thật sự là các tiến trình PHP-FPM, cơ sở dữ liệu và object cache. Một vài điểm khởi đầu hợp lý:
| Loại website | Cấu hình khởi đầu | Ghi chú |
|---|---|---|
| Blog, website doanh nghiệp, ít truy cập | 1 vCPU, 2 GB RAM | Đủ dùng khi có page cache |
| Blog đông khách hoặc shop WooCommerce nhỏ | 2 vCPU, 4 GB RAM | Đủ chỗ cho Redis và thêm worker PHP |
| Nhiều website hoặc shop lớn | 4 vCPU, 8 GB RAM | Cân nhắc CPU dedicated nếu tải đều |
Máy 1 GB RAM vẫn chạy được WordPress, nhưng MariaDB và PHP cộng lại gần như hết chỗ, nên nếu chọn nhỏ vậy hãy tạo thêm swap. CPU shared ổn với đa số trang nội dung; shop WooCommerce có lượt tìm kiếm và thanh toán liên tục sẽ hưởng lợi từ CPU general purpose hoặc dedicated. Bạn có thể tăng CPU, RAM và mở rộng ổ đĩa sau trong console, nên cứ bắt đầu vừa phải. Muốn tìm hiểu kỹ từng vị trí, hãy đọc VPS tốt nhất tại Singapore, VPS tốt nhất tại Hong Kong và VPS tốt nhất tại Nhật Bản.
Cài đặt bộ LEMP từng bước
Các lệnh dưới đây giả định bạn dùng Ubuntu 24.04 mới cài. Đăng nhập qua SSH, cập nhật hệ thống rồi cài gói:
sudo apt update && sudo apt upgrade -y
sudo apt install -y nginx mariadb-server php-fpm php-mysql php-curl php-gd \
php-mbstring php-xml php-zip php-intl php-imagick unzip
sudo mysql_secure_installation
Tạo cơ sở dữ liệu và một user riêng cho WordPress:
sudo mysql -e "CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
sudo mysql -e "CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'mat-khau-dai-ngau-nhien';"
sudo mysql -e "GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost'; FLUSH PRIVILEGES;"
Bộ ký tự utf8mb4 rất quan trọng với tiếng Việt: nó lưu đầy đủ dấu và cả emoji mà biên tập viên có thể dán vào bài. Tải WordPress về thư mục web:
cd /tmp && curl -O https://wordpress.org/latest.tar.gz
tar xzf latest.tar.gz
sudo mv wordpress /var/www/example.vn
sudo chown -R www-data:www-data /var/www/example.vn
Tạo file /etc/nginx/sites-available/example.vn. Kiểm tra phiên bản PHP bằng php -v; Ubuntu 24.04 đi kèm PHP 8.3 nên socket là php8.3-fpm.sock.
server {
listen 80;
server_name example.vn www.example.vn;
root /var/www/example.vn;
index index.php;
client_max_body_size 64M;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
location ~* \.(css|js|jpg|jpeg|png|webp|svg|woff2)$ {
expires 30d;
access_log off;
}
}
Kích hoạt site rồi xin chứng chỉ miễn phí từ Let's Encrypt:
sudo ln -s /etc/nginx/sites-available/example.vn /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d example.vn -d www.example.vn
Mở tên miền trên trình duyệt và hoàn tất trình cài đặt WordPress với thông tin database vừa tạo. Nếu muốn hiểu kỹ hơn về server block và HTTPS, bài cấu hình Nginx reverse proxy và SSL hướng dẫn chi tiết từng bước.
Bật cache sao cho thật sự hiệu quả
Cache là chỗ VPS bỏ xa shared hosting, vì bạn kiểm soát mọi tầng.
- OPcache được bật sẵn cùng PHP-FPM trên Ubuntu. Nó giữ mã PHP đã biên dịch trong RAM và bạn không cần làm gì thêm.
- Object cache bằng Redis lưu kết quả truy vấn database. Cài bằng
sudo apt install -y redis-server php-redis, khởi động lại PHP-FPM rồi bật một plugin Redis object cache trong WordPress. Cách này giúp nhiều nhất với WooCommerce và website có nhiều người dùng đăng nhập. - Page cache trả HTML dựng sẵn cho khách vãng lai mà không cần chạy PHP. Plugin cache ghi file tĩnh hoặc FastCGI cache của Nginx đều dùng được. Với shop, nhớ loại trừ trang giỏ hàng, thanh toán và tài khoản.
- Dung lượng ảnh thường ảnh hưởng nhiều hơn cả việc tinh chỉnh máy chủ. Hãy dùng WebP và cắt ảnh vừa với màn hình điện thoại, vì phần lớn người Việt lướt web bằng di động.
- Giảm số lượt khứ hồi càng quan trọng khi máy chủ ở nước ngoài. HTML đã cache, thời gian cache trình duyệt dài cho file tĩnh và bớt script bên thứ ba đều giúp trình duyệt của khách ít phải gọi về máy chủ hơn.
Sau khi có cache, chỉnh PHP-FPM trong /etc/php/8.3/fpm/pool.d/www.conf. Giá trị pm.max_children phải vừa với RAM: lấy phần RAM bạn dành cho PHP chia cho dung lượng trung bình của một worker (xem bằng ps hoặc top), và chừa chỗ cho MariaDB.
Giữ máy chủ khỏe mạnh lâu dài
- Bảo mật máy chủ trước tiên: đăng nhập bằng SSH key, firewall chỉ mở cổng 22, 80, 443 và bật cập nhật bảo mật tự động. Checklist bảo mật VPS mới liệt kê đủ từng bước.
- Sao lưu định kỳ cả database (
mysqldump) lẫn thư mụcwp-contentra nơi lưu trữ bên ngoài máy chủ, và thử khôi phục ít nhất một lần. - Theo dõi biểu đồ CPU, RAM và mạng trong console sau mỗi đợt chạy quảng cáo hay khi có bài viral, rồi nâng cấu hình trước khi trang bắt đầu chậm.
Câu hỏi thường gặp
1 vCPU và 2 GB RAM có đủ chạy WordPress không?
Với blog hoặc website doanh nghiệp lượng truy cập vừa phải và có page cache, thường là đủ. Hãy nâng cấu hình khi chạy WooCommerce, cài nhiều plugin hoặc đặt nhiều website trên cùng một máy.
Có nên cài control panel không?
Panel tiện nhưng tốn RAM và mở rộng bề mặt tấn công. Bộ LEMP thuần như trên nhẹ hơn; chỉ nên dùng panel khi người quản trị không quen dòng lệnh.
Cloudj có VPS tại Việt Nam không?
Không. Các vị trí máy chủ của Cloudj gần Việt Nam nhất là Singapore, Hong Kong và Tokyo. Nếu website bắt buộc phải đặt trong nước, hãy dùng một nhà cung cấp tại Việt Nam.
Tôi có thể thanh toán bằng VND không?
Có. Khách hàng Việt Nam nạp tiền vào số dư tài khoản Cloudj bằng chuyển khoản ngân hàng bằng VND, sau đó máy chủ được trừ tiền từ số dư này.
Chuyển từ shared hosting sang VPS có bị gián đoạn không?
Gần như không. Chép file và database sang máy chủ mới, kiểm tra bằng cách sửa file hosts trên máy bạn, rồi mới đổi DNS. Bài chuyển website sang VPS mới trình bày đúng thứ tự các bước.
Bắt đầu với máy chủ WordPress của bạn
Đo từ nhà mạng của người đọc, chọn Singapore, Hong Kong hoặc Tokyo, bắt đầu với cấu hình vừa phải và nâng dần khi biểu đồ cho thấy cần. Bạn có thể xem giá hiện hành trên trang bảng giá, và console Cloudj hiển thị chi phí chính xác trước khi bạn triển khai.