Nuxt3 SSR 服务端渲染部署 PM2 全流程(Nest.js 同理)
项目打包
我们以 Nuxt3
项目为例子:
项目打包
- 执行
npm run build
, 生成的.output
文件夹就是部署产物(目前不支持中文路径) - 执行
npm run preview
可以本地预览效果
方式一:使用 Node 部署
需要服务器安装 Node 环境
systemctl install nodejs
systemctl install npm # 安装npm是为后面安装库做准备
- 运行:
node .output/server/index.mjs
- 指定端口:
PORT=8888 node .output/server/index.mjs
- PORT:是动态添加的环境变量
如果你要管理 Node 版本,可以安装 n 工具
npm install –g n
n --version # 查看版本
方式二:使用 PM2 部署(推荐)
认识PM2(Process Manager)
PM2是一个守护进程管理器, 它将帮助管理和保持你的在线应用程序。
更简单的理解:负责管理Node、Python等程序,并能让程序一直保持在后台运行。
安装PM2
npm install –g pm2
PM2 常用命令和配置文件
将打包后的文件上传到服务器
生成 pm2 配置文件
pm2 init simple #自动生成 ecosystem 配置文件
然后修改配置内容,主要是 SSR 服务器脚本启动路径
module.exports = {apps : [{name : "Nuxt3AppTest",exec_mode:'cluster',instances:'max',script : "./.output/server/index.mjs"}]
}
启动应用
pm2 start ecosystem.config.js # 启动应用
因为 Nuxt3 默认的端口号 3000,所以需要我们配置服务器的端口安全组,我以阿里云控制台为例子
然后输入你的 IP + 3000端口就可以访问了~(记得要配置上面服务器可访问3000端口安全组,否则可采用 Nginx 做代理也可以)
参考资料
Nuxt.js(Vue SSR)创建项目到服务器(Nginx+PM2)部署详细流程
相关文章:

Nuxt3 SSR 服务端渲染部署 PM2 全流程(Nest.js 同理)
项目打包 我们以 Nuxt3 项目为例子: 项目打包 执行 npm run build , 生成的 .output 文件夹就是部署产物(目前不支持中文路径)执行 npm run preview 可以本地预览效果 方式一:使用 Node 部署 需要服务器安装 Nod…...

如何轻松使用pip安装Git仓库中的私有Python模块(使用pip和Git仓库发布和安装私有Python模块)
文章目录 📖 介绍 📖🏡 演示环境 🏡📒 Git模块 📒📝 Git仓库要求🔖 项目目录结构🔖 文件说明📝 编写setup.py📝 配置MANIFEST.in📝 推送代码到Git仓库📝 使用pip安装模块🔖 使用用户名和密码🔖 使用Personal Access Token (PAT)🔖 示例📝 更…...
写 R 包教程
R R 包开发 | 保姆级教程-CSDN博客 https://www.prestevez.com/post/r-package-tutorial/ 1、加载开发所需 R 包 library(usethis) library(devtools) library(roxygen2) 2、在当前工作路径创建 R 包 usethis::create_package("myRpkg") # 在当前路径创建 my…...

【java】数组(超详细总结)
目录 一.一维数组的定义 1.创建数组 2.初始化数组 二.数组的使用 1.访问数组 2.遍历数组 3.修改数据内容 三.有关数组方法的使用 1.toString 2. copyOf 四.查找数组中的元素 1.顺序查找 2.二分查找binarySearch 五.数组排序 1.冒泡排序 2.排序方法sort 六.数组逆置…...
@KafkaListener注解
KafkaListener(topics "${xxxx}", containerFactory "xxx") public void consume(String message) {service.save(xx); }在 Spring Boot 中,使用 KafkaListener 注解消费 Kafka 消息时,如果 service.save(cleanWikiSource) 抛出异…...

2025年计算机视觉研究进展与应用国际学术会议 (ACVRA 2025)
2025年计算机视觉研究进展与应用国际学术会议 (ACVRA 2025) 2025 International Conference on Advances in Computer Vision Research and Applications 重要信息 2025年3月28-30日 南京 一轮截稿日期:2024年11月30日 EI检索稳定 早投稿,早审稿&a…...

第二代GPT-SoVITS V2:让声音克隆变得简单
随着人工智能技术的飞速发展,AI声音克隆已经成为一种趋势,广泛应用于各个领域。为了满足更多用户的需求,第二代GPT-SoVITS V2应运而生,它由RVC变声器创始人“花儿不哭”与AI音色转换技术Sovits开发者Rcell联合开发,是一…...
基于x86_64汇编语言简单教程6: 变量,常量,与运算
目录 变量 为未初始化的数据分配存储空间 多重初始化 常量 equ指令 %assign 指令 %define指令 算数指令 inc 自增指令 dec指令 ADD和SUB指令 imul/mul和idiv/div 实践:我们来写一个简单的一位数加法器 NASM逻辑指令 AND 指令 …...

Vue-router 路由守卫执行流程图
vue-router 路由守卫执行的流程图(个人理解) 图1 - 图2...
ES6 中函数参数的默认值
概述: ES 允许给函数的参数赋初始值; 代码示例及相关说明: <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>函数参数默认值</title> </head> <body> <script&g…...
Redis知识应用索引指南
Redis,全称为Remote Dictionary Server,是一个开源的高性能键值对数据库。它以其卓越的性能、丰富的数据结构和灵活的持久化机制,在现代应用中扮演着至关重要的角色 1 什么是redis Redis是一个使用ANSI C语言编写的开源、跨平台的键值存储系…...

ES6扩展运算符
1.介绍: ... 扩展运算符能将数组转换为逗号分隔的参数序列; 扩展运算符(spread)也是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的 参数序列,对数组进…...
【树莓派 5B】Python 版本切换
【树莓派 5B】Python 版本切换 前言整体思路具体步骤常见问题Python 无法建立与 Python3 的软连接 前言 本文基于树莓派5B 32-bit 树莓派OS,以 Python-3.11.2 降级到 3.9.2 为例,总结了在树莓派上切换 Python 版本的步骤,帮助大家轻松完成 P…...
windows C++-有效使用PPL(五)
如果可能,避免错误共享 当在不同处理器上运行的多个并发任务写入位于同一高速缓存行上的变量时,会发生错误共享。 当一个任务写入一个变量时,这两个变量的缓存行将会失效。 每当缓存行失效时,每个处理器必须重新加载缓存行。 因此…...

【排序】——1.冒泡排序法(含优化)
冒泡排序 1.原理 左边大于右边交换一趟排下来最大的交换到右边来(接下来所以文章用升序举例) 从左到右,相邻元素进行比较。 每次比较一轮,就会找到序列中最大的一个(最小的一个——降序)。这个数就会从序列的最右边冒出来。 以…...
在MySQL中创建数据库和表
在MySQL中,创建数据库和表是数据库管理的基础操作。下面我将详细解释如何先创建一个数据库,然后在该数据库中创建一个或多个表。 ### 1. 创建数据库 首先,你需要登录到MySQL服务器。然后,使用CREATE DATABASE语句来创建一个新的…...

Hadoop 安装教程——单节点模式和分布式模式配置
文章目录 一、预备知识1.1 Hadoop 发行版本1.2 部署方式 二、预备条件2.1 环境准备2.2 创建新用户(可选)2.3 配置 SSH 无密码登录2.4 下载 Hadoop2.5 编辑 hadoop-env.sh 脚本2.6 编辑 dfs 和 yarn 脚本 三、单节点模式部署3.1 官方使用案例3.2 查看运行结果 四、伪分布模式部署…...
给c++小白的教程10:一维数组
好久不见!我又来更教程了。 升到初二,由于学业原因,更新速度减慢了,十分抱歉! 以后将恢复到一周一次的频率 作者只是个普通学生,做的教程多有不足,希望大家批评指正! 赫炎今天在一…...

【排序】3.希尔排序法
希尔排序(直接插入排序的优化) 1.分组思想 上图中gap为5,说明要分成5组。 这5组分别用了五种颜色的线条连接起来了。 第1组:9、4 第2组:1、8 第3组:2、6 第4组:5、3 第5组:7、5 2.缩…...
商品详情数据API接口概述(json数据格式返回参考)
商品详情数据API接口是指一种编程接口(API,Application Programming Interface),它允许开发者或系统以编程方式获取商品的详细信息。这些信息包括但不限于SKU的详细信息、商品图片、商品属性、价格、库存状态、用户评价等。当调用…...

19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果 5.2 IPsec隧道模式(Tunne…...

AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
MySQL 主从同步异常处理
阅读原文:https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主,遇到的这个错误: Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一,通常表示ÿ…...