1. 更新系統包
在部署前,確保Debian系統的軟件包是最新的,避免兼容性問題:
sudo apt update && sudo apt upgrade -y
2. 安裝Node.js和npm
Node.js是JS應用的運行環境,npm是其包管理器。推薦通過NodeSource倉庫安裝特定版本(如16.x/18.x),或使用NVM(Node版本管理器)管理多版本:
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt install -y nodejs
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
source ~/.bashrc
nvm install 16 # 安裝最新16.x版本
nvm use 16 # 切換至該版本
安裝完成后,驗證版本:
node -v # 查看Node.js版本
npm -v # 查看npm版本
3. 上傳JS應用代碼
將本地JS應用(如通過Git克隆或FTP/SFTP上傳)放置到服務器目錄(如/var/www/your-app):
git clone https://github.com/yourusername/your-app.git /var/www/your-app
cd /var/www/your-app
4. 安裝應用依賴
JS應用通常通過package.json管理依賴,進入項目目錄運行以下命令安裝:
npm install
# 若需生產環境精簡依賴,可添加--production參數
npm install --production
5. 配置環境變量
若應用需要敏感配置(如數據庫密碼、API密鑰),建議使用.env文件(需安裝dotenv包)或在服務器環境變量中設置:
.env文件(不要提交至版本控制):echo "PORT=3000\nDB_HOST=localhost\nDB_USER=root\nDB_PASS=yourpassword" > .env
package.json的scripts中引用(如"start": "node -r dotenv/config app.js")。6. 使用PM2管理應用進程
PM2是Node.js進程管理工具,可實現后臺運行、自動重啟、日志管理等功能:
# 全局安裝PM2
sudo npm install -g pm2
# 啟動應用(假設入口文件為app.js)
pm2 start app.js --name "your-app"
# 保存當前進程列表(系統重啟后自動恢復)
pm2 save
# 設置開機自啟
pm2 startup
查看應用狀態:
pm2 status
# 查看實時日志
pm2 logs your-app
7. 配置Nginx反向代理(可選但推薦)
Nginx可作為反向代理,處理HTTP請求轉發、靜態文件服務及SSL加密,提升應用性能和安全性:
sudo apt install nginx -y
/etc/nginx/sites-available/your-app):sudo nano /etc/nginx/sites-available/your-app
添加以下內容(替換your_domain.com為域名/IP,3000為應用端口):server {
listen 80;
server_name your_domain.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/your-app /etc/nginx/sites-enabled
sudo nginx -t # 測試配置語法
sudo systemctl restart nginx
8. 配置防火墻
若服務器啟用了ufw防火墻,需開放HTTP(80)和HTTPS(443)端口:
sudo ufw allow 'Nginx Full' # 允許HTTP和HTTPS
sudo ufw enable # 啟用防火墻(若未啟用)
9. 可選:配置HTTPS(推薦)
使用Let’s Encrypt免費獲取SSL證書,加密應用流量:
# 安裝Certbot和Nginx插件
sudo apt install certbot python3-certbot-nginx -y
# 獲取證書并自動配置Nginx
sudo certbot --nginx -d your_domain.com
# 按提示完成驗證(需域名解析至服務器IP)
證書會自動續期,無需手動操作。
10. 驗證部署
打開瀏覽器訪問http://your_domain.com(或IP地址),若看到應用頁面則表示部署成功??赏ㄟ^PM2日志排查問題:
pm2 logs your-app