VPS cho developer – Cấu hình tối ưu để deploy project
Hướng dẫn cấu hình VPS tối ưu cho developer để deploy project Node.js, Python, PHP. Bao gồm Docker, CI/CD, Nginx reverse proxy và SSL.
Developer cần VPS không chỉ để host website mà còn để deploy ứng dụng, chạy API, database và nhiều service khác. Bài viết này hướng dẫn cách cấu hình VPS cho developer một cách tối ưu.
Cấu hình VPS phù hợp cho developer
Tùy theo loại project, cấu hình VPS cần thiết khác nhau:
- Project nhỏ, API đơn giản: 1 vCPU, 1GB RAM, 20GB NVMe
- Web app trung bình: 2 vCPU, 2-4GB RAM, 40GB NVMe
- Nhiều service, microservices: 4 vCPU, 8GB RAM, 80GB NVMe
- Database server: 4+ vCPU, 16GB+ RAM, 200GB+ NVMe
Cài đặt Docker
Docker là công cụ không thể thiếu cho developer hiện đại:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
Docker Compose
sudo apt install docker-compose-plugin -y
Cài đặt Nginx làm Reverse Proxy
Nginx reverse proxy cho phép chạy nhiều ứng dụng trên cùng một VPS, mỗi ứng dụng trên một subdomain hoặc domain khác nhau:
sudo apt install nginx -y
sudo systemctl enable nginx
Cấu hình Nginx cho Node.js app
server {
listen 80;
server_name app.yourdomain.com;
location / {
proxy_pass http://localhost:3000;
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;
}
}
Cài đặt SSL với Certbot
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d app.yourdomain.com
Cài đặt Node.js với NVM
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
nvm install --lts
nvm use --lts
Process Manager với PM2
PM2 giúp Node.js app chạy liên tục và tự restart khi crash:
npm install -g pm2
pm2 start app.js --name "my-app"
pm2 startup # Tự start khi VPS reboot
pm2 save
Thiết lập CI/CD với GitHub Actions
Tự động deploy khi push code lên GitHub:
# .github/workflows/deploy.yml
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Deploy to VPS
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.VPS_HOST }}
username: ${{ secrets.VPS_USER }}
key: ${{ secrets.VPS_SSH_KEY }}
script: |
cd /var/www/my-app
git pull
npm install
pm2 restart my-app
Kết luận
VPS được cấu hình đúng cách là môi trường lý tưởng cho developer. Docker, Nginx reverse proxy, PM2 và CI/CD pipeline sẽ giúp workflow deploy của bạn trở nên chuyên nghiệp và hiệu quả.
VMST Host cung cấp VPS NVMe phù hợp cho developer. Xem các gói VPS tại vmst.host.