Hướng dẫn Deploy Next.js lên VPS Ubuntu với PM2 Cluster và Nginx Zero-Downtime
Thay vì tốn chi phí thuê các dịch vụ Cloud đắt đỏ, việc **tự Deploy ứng dụng Next.js lên một VPS Ubuntu giá rẻ** cho phép bạn hoàn toàn chủ sở hữu hệ thống với chi phí cực kỳ tiết kiệm. Hướng dẫn này sẽ giúp bạn cấu hình **PM2 Cluster Mode** và **Nginx Reverse Proxy** đảm bảo server tự chạy lại 24/7 và **Zero-Downtime Reload (Cập nhật không gián đoạn)**!
1. 4 Bước Deploy Next.js lên VPS Ubuntu từ A-Z
Bước 1: Cài đặt môi trường trên VPS Ubuntu
Cập nhật hệ thống và cài đặt Node.js, pnpm, Nginx và PM2:
sudo apt update && sudo apt upgrade -y
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs nginx
sudo npm install -g pm2 pnpm
Bước 2: Cấu hình file ecosystem.config.js cho PM2 Cluster Mode
Tạo file ecosystem.config.js để PM2 tự động tận dụng 100% nhân CPU của VPS:
module.exports = {
apps: [{
name: 'uwmee-landing-page',
script: 'node_modules/next/dist/bin/next',
args: 'start -p 4750',
instances: 'max',
exec_mode: 'cluster',
env: {
NODE_ENV: 'production'
}
}]
};
Bước 3: Cấu hình Nginx Reverse Proxy
Tạo file cấu hình Nginx /etc/nginx/sites-available/uwmee.conf trỏ cổng 80 về port 4750 nội bộ:
server {
server_name uwmee.com www.uwmee.com;
location / {
proxy_pass http://127.0.0.1:4750;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Bước 4: Cài đặt SSL HTTPS miễn phí với Certbot Let's Encrypt
Chạy lệnh kích hoạt HTTPS tự động:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d uwmee.com -d www.uwmee.com
2. Kỹ thuật Zero-Downtime Reload mỗi khi cập nhật code
Thay vì dùng lệnh pm2 restart làm gián đoạn kết nối của khách hàng, hãy dùng lệnh pm2 reload app_name --update-env để PM2 tráo đổi từng phiên bản ứng dụng trong vài miligiây mà KHÔNG bị gián đoạn trang web.
Kết luận
Tự làm chủ hạ tầng VPS PM2 & Nginx mang lại sự linh hoạt tuyệt đối cho doanh nghiệp. Uwmee Software hỗ trợ setup hạ tầng VPS PM2 Nginx chuyên nghiệp cho khách hàng. Đọc thêm bài viết GitHub Actions CI/CD cho Next.js.
Cần vượt Closed Testing nhanh chóng?
Đội 12+ tester thật của Uwmee tương tác hằng ngày đủ 14 ngày — trọn gói chỉ 300.000đ, chạy lại miễn phí nếu không đạt.