部署
仅用于记录前端项目的简单部署过程
1、直装
1、像react/vue这种是打包后依托web服务(nginx)进行部署
2、ssr-nuxt3、nestjs 依托于node服务 如下图
nginx部署
- 通过ftp将前端上传
- apt update更新源
- 安装nginx环境
apt update
更行资源
apt install nginx -y
安装nginx
systemctl status nginx
查看nginx的情况
find . -name "nginx"
查找nginx地址
配置
生成配置文件
切到如下目录操作目录etc/nginx/conf.d
vi easy-vue.conf
server {
listen 80; # 监听端口 80
server_name easy-vue.com; # 绑定域名 easy-vue.com
# 设置根目录为 /home/website/easy-vue
root /home/website/easy-vue;
# 默认入口文件为 index.html
index index.html;
# 处理根路径请求
location / {
try_files $uri $uri/ /index.html; # 如果文件不存在,则返回 index.html
}
# 处理静态资源请求
location ~* .(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
expires 30d; # 设置静态资源缓存时间为 30 天
add_header Cache-Control "public, no-transform";
}
# 处理 404 错误
error_page 404 /404.html;
location = /404.html {
internal;
}
# 处理 50x 错误
error_page 500 502 503 504 /50x.html;
location = /50x.html {
internal;
}
}
将nginx配置写入
nginx -t
检查配置
编辑本地host
加入如192.168.31.97 easy-vue.com
这样可以使用自定义域名访问
ping easy-vue.com 成功即可
systemctl restart nginx
线上的话购买域名之后可以配置域名的dns解析
node
安装nvm
按以下命令依次操作,其实和win系统中操作nvm类似
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash
source /root/.bashrc
nvm ls-remote
nvm install v23.0.0
首次安装即为默认版本、 如下可以修改默认版本
nvm alias default v23.0.0
设置自动启动
vi ~/.bash_profile
source ~/.bashrc
nvm use default
gitee.com/mirrors/nvm 可以运行node命令启动文件,下面介绍pm2启动
pm2.js
定义
PM2 是一个功能强大的 Node.js 进程管理工具,主要用于管理和监控 Node.js 应用程序
进程管理: PM2 可以轻松启动、停止、重启和删除 Node.js 应用进程
负载均衡:通过 Node.js 的集群模块,PM2 可以在多核 CPU 上启动多个进程,实现内建负载均衡,提升应用的并发处理能力
自动重启:当应用崩溃或服务器重启时,PM2 会自动重启应用,确保高可用性和稳定性
监控与日志管理:PM2 提供实时监控功能,显示 CPU、内存、网络使用情况等性能指标,并自动记录应用的标准输出和错误日志,方便开发者调试和排查问题
零秒停机重载:在维护升级时,PM2 支持零秒停机重载,无需停机即可更新应用
安装cnpm
npm i cnpm -g --registry=https://registry.npmmirror.com
cnpm i pm2 -g
nest部署
将本地打包的dist目录上传,文件包括dist|prisma|.env|package.json
执行node dist/main.js
即可挂载(ctrl+c即退出)
pm2挂载
pm2 start --name nest-app /home/chen/server/movie-nest/dist/main.js
pm2 list
可以查看
nuxt部署
设置pnpm启动
"engines":{
"pnpm":"*"
}
pnpm build
打包
将.output,.npmrc,package.json上传
pnpm i
node .output/server/index.mjs
端口冲突时
PORT=3010 node .output/server/index.mjs
pm2启动
PORT=3010 pm2 start --name nuxt-try .output/server/index.mjs
另一种pm2部署
将官网中 ecosystem.config.cjs 复制并添加到文件ecosystem.config.cjs
执行 pm2 start ecosystem.config.cjs
ecosystem.config.cjs如下
module.exports = {
apps: [
{
name: 'NuxtAppName',
port: '3000',
exec_mode: 'cluster',
instances: 'max',
script: './.output/server/index.mjs',
// 加入变量
env_production: {
BASE_URL: 'http://192.168.31.97:3000'
}
}
]
}
pm2 start ecosystem.config.js --env production