在Debian系統上管理Node.js項目涵蓋環境準備、項目初始化、進程管理、生產環境配置等多個環節,以下是詳細步驟:
首先更新系統包列表并升級現有軟件,確保系統穩定性:
sudo apt update && sudo apt upgrade -y
Node.js和npm(Node包管理器)是項目運行的基礎,推薦通過NodeSource倉庫安裝特定版本(避免系統自帶版本過舊):
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
node -v # 查看Node.js版本
npm -v # 查看npm版本
注:若需管理多個Node.js版本,可使用NVM(Node Version Manager)(參考“版本管理”部分)。
在項目目錄中初始化package.json文件(用于管理項目元數據和依賴):
mkdir ~/my-nodejs-app && cd ~/my-nodejs-app
npm init -y # 使用默認配置快速初始化
若需手動配置(如指定入口文件、版本號),可運行npm init并按提示操作。
將項目文件(含package.json)上傳至服務器后,安裝生產環境依賴:
npm install # 安裝dependencies中的依賴
若需安裝開發環境依賴(如eslint、jest),添加--save-dev參數:
npm install eslint --save-dev
注:
package.json中的dependencies字段會記錄所有必需依賴,便于后續部署時快速恢復。
使用PM2(進程管理器)確保應用在后臺持續運行,并在崩潰或服務器重啟后自動恢復:
sudo npm install pm2 -g
app.js):pm2 start app.js --name "my-node-app" # 自定義應用名稱
pm2 status # 查看應用狀態
pm2 logs # 查看實時日志
pm2 restart my-node-app # 重啟應用
pm2 stop my-node-app # 停止應用
pm2 startup # 生成啟動腳本
pm2 save # 保存當前進程列表
Nginx可作為反向代理,處理HTTP請求轉發、負載均衡及SSL終止,提升應用性能與安全性:
sudo apt install nginx -y
sudo nano /etc/nginx/sites-available/default
添加以下內容(將yourdomain.com替換為實際域名/IP,3000替換為應用端口):server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://localhost:3000; # 轉發至Node.js應用
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;
}
}
sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled # 啟用配置
sudo nginx -t # 測試配置語法
sudo systemctl restart nginx # 重啟Nginx
允許HTTP(80)和HTTPS(443)流量通過防火墻(若使用ufw):
sudo ufw allow 'Nginx Full' # 允許Nginx全流量
sudo ufw enable # 啟用防火墻
使用Let’s Encrypt免費獲取SSL證書,啟用HTTPS:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com # 替換為實際域名
按提示完成證書申請,Certbot會自動配置Nginx支持HTTPS。
若需在同一臺服務器上管理多個Node.js版本,可使用NVM(Node Version Manager):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc # 加載環境變量
nvm install 16
nvm use 16 # 切換至16.x版本
nvm alias default 16 # 設置默認版本
nvm ls-remote
通過以上步驟,可在Debian系統上高效管理Node.js項目,覆蓋從環境搭建到生產部署的全流程。