在服务器上部署一个 NestJS 项目,通常包括以下步骤:git clone
拉取项目代码,安装依赖,打包项目,启动服务,并确保它在后台运行。以下是详细的操作步骤,基于常见的 Linux 服务器环境(例如 Ubuntu)。
1. 安装 Node.js 和 npm(如果未安装)
确保服务器上已安装了 Node.js 和 npm。以下是安装 Node.js 的步骤(使用 NodeSource):
bash
代码解读
复制代码
# 更新系统包 sudo apt update # 安装 Node.js 和 npm(这里使用 18.x 版本) curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs
检查是否成功安装:
bash
代码解读
复制代码
node -v npm -v
2. 使用 git clone
获取 NestJS 项目
在服务器上,使用 git clone
克隆你的项目代码:
bash
代码解读
复制代码
git clone https://github.com/yourusername/your-nestjs-repo.git
进入项目目录:
bash
代码解读
复制代码
cd your-nestjs-repo
3. 安装项目依赖
NestJS 项目依赖于 Node.js 的包管理器 npm
或 yarn
。你可以通过以下命令安装项目所需的依赖:
bash
代码解读
复制代码
npm install
如果你使用 yarn
,则使用:
bash
代码解读
复制代码
yarn install
4. 设置环境变量
NestJS 项目通常使用 .env
文件存储环境变量。在服务器上创建 .env
文件并添加必要的配置。
bash
代码解读
复制代码
touch .env
在 .env
文件中添加内容,例如:
env
代码解读
复制代码
DATABASE_URL=mongodb://localhost:27017/yourdb PORT=3000 JWT_SECRET=your_secret_key
确保 .env
文件包含你项目所需的所有环境变量。
5. 构建 NestJS 项目
NestJS 项目通常需要通过 npm run build
命令将 TypeScript 编译为 JavaScript。
bash
代码解读
复制代码
npm run build
这会在项目的 dist
目录下生成编译后的文件。
6. 启动 NestJS 应用程序
使用以下命令启动编译后的 NestJS 应用程序:
bash
代码解读
复制代码
npm run start:prod
或者,使用直接运行命令:
bash
代码解读
复制代码
node dist/main.js
7. 使用 PM2 管理 NestJS 应用程序(可选)
为了确保 NestJS 应用程序在服务器重启后能够自动启动,或者在崩溃时自动重启,建议使用 PM2
进程管理器。
安装 PM2
:
bash
代码解读
复制代码
npm install -g pm2
使用 PM2 启动 NestJS 应用:
bash
代码解读
复制代码
pm2 start dist/main.js --name "nestjs-app"
你可以查看 PM2 状态:
bash
代码解读
复制代码
pm2 status
确保应用程序在服务器重启时自动重启:
bash
代码解读
复制代码
pm2 startup pm2 save
8. 设置反向代理(使用 Nginx)
如果你希望通过域名(例如 your-domain.com
)来访问 NestJS 应用程序,可以使用 nginx
作为反向代理。首先安装 nginx
:
bash
代码解读
复制代码
sudo apt install nginx
编辑 Nginx 配置文件,指向 NestJS 应用运行的端口(默认为 3000
):
bash
代码解读
复制代码
sudo nano /etc/nginx/sites-available/default
在文件中添加如下配置:
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 nginx -t
如果配置没有问题,重新加载 nginx
:
bash
代码解读
复制代码
sudo systemctl reload nginx
9. 验证应用程序
此时,你应该可以通过服务器的 IP 地址或绑定的域名访问 NestJS 应用。例如:
bash
代码解读
复制代码
http://your-domain.com
总结
- 安装 Node.js 和 npm。
- 使用
git clone
拉取项目代码。 - 安装依赖并设置环境变量。
- 编译项目并启动。
- 使用 PM2 管理应用的进程(可选)。
- 配置
nginx
作为反向代理(可选)。
通过这些步骤,你可以成功在服务器上部署并运行你的 NestJS 项目。
原文链接:https://juejin.cn/post/7415914118997246006