项目部署
https
项目支持 https
,需要在 main.ts
中 将 httpsOptions: await loadHttpOptions(isDev)
的注释解开,并且在https
目录下填入 private-key.pem
和 public-certificate.pem
文件,ssl证书获取可以去 ssl证书平台获取
如果使用 fastify
分支,需要打开 httpsOptions
的注释
Docker 部署
前提:服务器上需要安装 `docker` 和 `docker-compose`
首先要完善 .env
、.env.production
、docker-compose.prod.yml
文件
构建部署
cd nest-admin
# 打包镜像
pnpm run docker:build:prod # 没有 pnpm 也可以用 npm run docker:build:prod
# 启动容器
pnpm run docker:up:prod
其他操作
# 停止容器
pnpm run docker:down
# 停止容器 并且删除 数据卷
pnpm run docker:down:v
以上命令对应 `docker` 命令 只是写到了 `package.json` 中
pm2 方式部署
1、在项目根目录下 编写 ecosystem.config.js
const { cpus } = require('node:os')
const cpuLen = cpus().length
module.exports = {
apps: [
{
name: 'nest-admin',
script: './dist/main.js',
autorestart: true,
exec_mode: 'cluster',
watch: false,
instances: cpuLen,
max_memory_restart: '1G',
args: '',
env: {
NODE_ENV: 'production',
},
},
],
}
记得把 .env.production
文件里的 host
配置修改了
# 只有使用 `docker` 部署的情况下,才需要配置成 `host.docker.internal`
DB_HOST = 127.0.0.1
REDIS_HOST = 127.0.0.1
2、运行项目
使用 pm2 在项目根目录执行 pm2 start ecosystem.config.js
pm2 指令
pm2 start ecosystem.config.js // 启动项目
pm2 stop nest-admin // 停止项目
pm2 delete nest-admin // 删除项目
pm2 list // 查看项目列表
pm2 log nest-admin // 查看项目日志
前端部署
Docker 部署
1、配置 baseUrl
配置 .env.prod
文件下的 VITE_SERVICE_BASE_URL
(打包环境变量是prod,就会使用.env.prod
文件里的配置) 根据实际情况配置
例如:
VITE_SERVICE_BASE_URL=https://xxxxx.com:3000/
这样配置以后,前端请求后端会直接请求https://xxxxx.com:3000/
,假设你的后端服务地址是``http://localhost:3000/
,后端和前端部署在同一个服务器上,那么连nginx
反向代理都不用配置即可连通
2、打包项目
# 打包项目
pnpm run build
3、使用 docker
构建镜像
docker build -t vue3-naive-admin:latest .
3、启动容器
docker run -d -p 80:80 --name vue3-naive-admin
nginx 部署
1、配置 baseUrl
配置 .env.prod
文件下的 VITE_SERVICE_BASE_URL
(打包环境变量是prod,就会使用.env.prod
文件里的配置) 根据实际情况配置
例如:
VITE_SERVICE_BASE_URL=https://xxxxx.com:3000/
这样配置以后,前端请求后端会直接请求 https://xxxxx.com:3000/
, 假设你的后端服务地址是``http://localhost:3000/
,后端和前端部署在同一个服务器上,那么连nginx反向代理都不用配置即可连通
2、打包项目
# 打包项目
pnpm run build
3、将打包好的 dist
文件复制到服务器的某个目录下
这个目录,你知道在哪里就ok,nginx
配置里会使用到这个目录
4、配置 nginx
将下面代码复制到 nginx.conf
文件的 http对象下
server {
listen 80; # 监听80端口
server_name localhost;
location / {
root /www/wwwroot/vue3-naive-admin/dist; # 存放 dist 文件的目录 和3步骤呼应
index index.html;
try_files $uri $uri/ /index.html; # history 模式需要使用 try_files 将请求转发到 index.html
}
}
5、重启 nginx