以下是在Ubuntu系統上部署Node.js項目的完整流程,分為系統初始化、環境配置、項目部署三個部分:
一、系統初始化 & 環境準備
bash
# 1. 更新系統軟件包
sudo apt update && sudo apt upgrade -y# 2. 安裝基礎工具
sudo apt install -y build-essential git curl# 3. 安裝Node.js(推薦使用LTS版本)
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs# 驗證安裝
node -v && npm -v# 4. 全局安裝PM2進程管理工具
sudo npm install -g pm2# 設置PM2開機自啟
pm2 startup systemd
# 根據提示執行生成的命令(例如)
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu
二、上傳Node.js項目
方式1:通過SCP上傳(本地→服務器)
bash
# 本地終端執行(非服務器)
scp -r /本地/項目路徑 ubuntu@服務器IP:/目標路徑
方式2:通過Git克隆
bash
# 服務器操作
git clone https://github.com/你的倉庫地址.git
cd 項目目錄
三、項目部署流程
bash
# 1. 進入項目目錄
cd /path/to/your/project# 2. 安裝項目依賴
npm install# 3. 配置環境變量(按需)
# 方式1:直接寫入
echo "PORT=3000" > .env
# 方式2:手動創建.env文件并填寫配置# 4. 啟動項目(任選其一)
pm2 start app.js # 直接啟動js文件
pm2 start "npm start" --name "my-app" # 啟動npm腳本
pm2 start ecosystem.config.js # 使用配置文件# 5. 保存PM2進程列表
pm2 save# 6. 查看運行狀態
pm2 list
pm2 logs
四、網絡配置(可選)
1. 開放防火墻端口
bash
sudo ufw allow 22 # SSH端口(已默認開放)
sudo ufw allow 3000 # 應用端口
sudo ufw enable
2. 配置Nginx反向代理(推薦)
bash
# 安裝Nginx
sudo apt install -y nginx# 創建配置文件
sudo nano /etc/nginx/sites-available/your-domain.conf
配置文件內容示例:
nginx
server {listen 80;server_name your-domain.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;}
}
啟用配置并重啟Nginx:
bash
sudo ln -s /etc/nginx/sites-available/your-domain.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
3. 配置SSL證書(Let's Encrypt)
bash
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com
五、常用維護命令
bash
# 查看實時日志
pm2 logs# 重啟應用
pm2 restart app-name# 停止應用
pm2 stop app-name# 刪除應用
pm2 delete app-name# 更新項目代碼后的操作
git pull
npm install
pm2 restart all
注意事項:?
- 確保項目中的監聽地址為?
0.0.0.0
?而非?127.0.0.1
- 生產環境建議使用
NODE_ENV=production
- 敏感信息(如API密鑰)務必通過
.env
文件管理 - 建議使用
npm ci
代替npm install
保持依賴一致性
按照以上步驟操作,即可完成從零開始到生產環境部署的完整流程。