沙茶酱
主 题
一、操作
1.nuxt
执行打包命令 npm run build
2.将build
输出的文件夹 .output
的所有内容上传到服务器 /blog/nuxt-home
中
3.执行 npm install pm2 -g
安装pm2并配置 ecosystem.config.js
language
// 配置pm2
module.exports = {
apps: [
{
name: "BlogHomeNuxt",
exec_mode: "cluster",
instances: "2",
script: "output/server/index.mjs",
args: "", // 传递给脚本的参数
watch: true, // 开启监听文件变动重启
ignore_watch: ["node_modules", "public", "logs"], // 不用监听的文件
exec_mode: "fork",// 自家主机window cluster_mode 模式下启动失败
instances: "2", // max表示最大的 应用启动实例个数,仅在 cluster 模式有效 默认为 fork
autorestart: true, // 默认为 true, 发生异常的情况下自动重启
max_memory_restart: "1G",
// error_file: './logs/app-err.log', // 错误日志文件
// out_file: './logs/app-out.log', // 正常日志文件
merge_logs: true, // 设置追加日志而不是新建日志
log_date_format: "YYYY-MM-DD HH:mm:ss", // 指定日志文件的时间格式
min_uptime: "60s", // 应用运行少于时间被认为是异常启动
max_restarts: 30, // 最大异常重启次数
restart_delay: 60, // 异常重启情况下,延时重启时间
env: {
// 环境参数,当前指定为开发环境
NODE_ENV: "development",
PORT: "5050",
},
env_production: {
// 环境参数,当前指定为生产环境
NODE_ENV: "production", //使用production模式 pm2 start ecosystem.config.js --env production
PORT: "5050",
},
env_test: {
// 环境参数,当前为测试环境
NODE_ENV: "test",
},
},
],
};
4.编写 start-nuxt.sh
脚本
language
#!/bin/bash
BUILD_ID=DONTKILLME
echo "pm2 starting"
pm2 start ecosystem.config.js --env production
echo "pm2 started"
5.在 /blog/nuxt-home
下执行 sh start-nuxt.sh
即可 成功使用pm2
启动nuxt
服务
6.找到nginx.conf
文件,修改默认访问网站配置
language
# 博客前端
location / {
# root /blog/home/;
# index /index.html;
# try_files $uri $uri/ /index.html;
proxy_pass http://localhost:5050/;
}
7.设置服务器重启自动启动服务
- 查看当前线程
pm2 list
- 保存当前线程
pm2 save
- 设置服务器开机自启
pm2 startup
常用pm2命令
language
// --name 别名
pm2 start main --name zone-server
二、相关注意事项
- 目前
nuxt3
服务器打包会造成内存溢出导致卡死 pm2
部署nestjs
服务时,有用到express-session
时不能使用多核部署,防止多核时session
不同步重写,导致首次访问session
不存在问题。
全部评论(11)