准备工作
# 1. 构建项目
npm run build # 这会将 TypeScript 编译为 JavaScript,输出到 dist 目录
# 2. 准备生产环境文件
cp .env dist/ # 复制环境配置文件
cp package.json dist/ # 复制 package.json
服务器配置
# 1. 安装 Node.js 和 npm
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
# 2. 安装 PM2 用于进程管理
npm install -g pm2
# 3. 创建项目目录
mkdir -p /var/www/your-app
cd /var/www/your-app
部署文件
# 本地打包后的文件传输到服务器
scp -r dist/* user@your-server:/var/www/your-app/
# 在服务器安装依赖
cd /var/www/your-app
npm install --production
使用 PM2 启动应用
# 创建 PM2 配置文件 ecosystem.config.js
# 集群模式
module.exports = {
apps: [{
name: "your-app",
script: "./dist/app.js",
instances: 2,
exec_mode: "cluster",
watch: true,
env: {
NODE_ENV: "production",
PORT: 3000
}
}]
}
# 单实例模式
module.exports = {
apps: [{
name: "your-app",
script: "./dist/app.js",
instances: 1, // 改为 1 个实例
exec_mode: "fork", // 改为 fork 模式
watch: true,
env: {
NODE_ENV: "production",
PORT: 3000
}
}]
}
# 启动应用
pm2 start ecosystem.config.js
配置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;
}
}
常用PM2命令
pm2 status # 查看应用状态
pm2 logs # 查看日志
pm2 restart all # 重启所有应用
pm2 stop all # 停止所有应用
pm2 delete all # 删除所有应用
pm2 save # 保存 PM2 进程列表
评论区