Nuxt3部署-Ubuntu系统(Node 服务 + pm2 + Nginx 反向代理)

news2025/1/13 10:17:18

Nuxt3部署-Ubuntu系统(Node 服务 + pm2 + Nginx 反向代理)


文章目录

  • Nuxt3部署-Ubuntu系统(Node 服务 + pm2 + Nginx 反向代理)
  • 一、安装 Nodejs 环境
  • 二、安装 Nginx
  • 三、安装 pm2
  • 四、本地项目打包
    • 1️⃣:打包
    • 2️⃣:检验打包
    • 3️⃣:ecosystem.config.cjs
    • 4️⃣:文件上传到服务器
  • 五、配置nginx代理
  • 六、启动项目
    • 1️⃣:启动项目
    • 2️⃣:设置pm2开机自启
  • 7️⃣:访问测试![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/f5db0d4862f8470e9d45db259d584e53.png)


一、安装 Nodejs 环境

参考Ubuntu安装nvm+node笔记:

  • 检验node环境nuxt3 node至少18.x.x以上

在这里插入图片描述

二、安装 Nginx

参考Ubuntu安装Nginx笔记:https://blog.csdn.net/cygqtt/article/details/136448786

  • 查看nginx的运行状态
 systemctl status nginx

在这里插入图片描述

三、安装 pm2

注意:要先有 node 服务,才能使用下面的安装命令

npm install pm2 -g

在这里插入图片描述

安装完成后,你可以运行pm2 -v命令,查看 pm2 的版本信息

pm2 -v

在这里插入图片描述

四、本地项目打包

1️⃣:打包

  • 使用npm run build打包项目
npm run build

在这里插入图片描述

2️⃣:检验打包

  • 打包成功后你可以用node .output/server/index.mjs命令在本地启动,
  • 看看能否成功访问项目,通过http://localhost:3000/地址在浏览器打开即可。

在这里插入图片描述
在这里插入图片描述

3️⃣:ecosystem.config.cjs

  • 因为项目要用到 pm2 启动(服务器重启后可以自动重启 Nuxt 项目),所以还需要准备一个文件,文件名为ecosystem.config.cj或者ecosystem.config.js

  • ecosystem.config.cjs会被识别为 CommonJS 模块ecosystem.config.js 文件会被识别为 ES 模块, pm2 会尝试使用 require() 加载这个文件,所以推荐使用.cjs的文件。

添加配置文件ecosystem.config.cjs

module.exports = {
    apps: [
        {
            name: "my-bilibili", // 启动项目名称,随便取,一般为项目名
            exec_mode: "cluster",
            instances: "max", // 进程数
            port: "3000", // 端口,根据需要指定
            script: "./.output/server/index.mjs", // 启动入口,相对于 .output 目录的路径
            args: "start",
            env: {
                MODE: "production"
            }
        }
    ]
}

在这里插入图片描述

  • 将这个文件上传到服务器,与.output目录文件同级即可

4️⃣:文件上传到服务器

项目打包成功后,会生成一个.output文件,把这个文件一整个都上传到服务器中,然后在服务器中启动项目,并配置 nginx 代理,即可让其在公网访问

.output目录下的 server 文件内是有 node_modules 文件的

  • 上传之后就不需要在服务器中重新使用npm install命令加载项目依赖了,直接就可以使用启动命令启动项目。
  • 若你不上传这个 node_modules 文件,则需要在项目中重新加载一遍依赖。

服务器中创建目录/usr/local/project/nuxt3/my-bilibili

  • .output目录ecosystem.config.cjs 都上传到改目录下

在这里插入图片描述

五、配置nginx代理

1.编辑 nginx 配置文件通常在/etc/nginx

在这里插入图片描述

2.在配置文件中添加以下内容

    server {
        listen 8083;
        server_name _;

        location / {
            # 指向你的应用运行的地址和端口
            proxy_pass http://127.0.0.1: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;
        }
    }

在这里插入图片描述

3.测试 nginx 配置、并重新加载 nginx 服务

sudo nginx -t
sudo systemctl reload nginx

六、启动项目

1️⃣:启动项目

使用 pm2 启动项目的命令,得注意你的文件名是.cjs 还是.js

1.进入到目录/usr/local/project/nuxt3/my-bilibili

在这里插入图片描述

2.启动

pm2 start ecosystem.config.cjs

在这里插入图片描述

  • 状态online表示项目启动成功

3.可以用以下命令查看端口是否在运行

 ps -ef | grep my-bilibili

在这里插入图片描述

netstat -nltp

在这里插入图片描述

2️⃣:设置pm2开机自启

1.检查 PM2 进程

pm2 status

在这里插入图片描述

2.保存当前的进程列表

pm2 save

在这里插入图片描述

3.设置 PM2 开机自启动

pm2 startup

7️⃣:访问测试在这里插入图片描述

  • 成功
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2215199.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【截流软件】采集短视频关键词笔记下的筛选评论

用python开发的dy采集工具【爬抖Y搜索评论软件】,可用于引流截流等。 支持2种模式的评论采集: 根据关键词采集评论,爬取思路:作品关键词->作品链接->评论根据作品链接采集评论,爬取思路:作品链接-&g…

aws(学习笔记第六课) AWS的虚拟私有,共有子网以及ACL,定义公网碉堡主机子网以及varnish反向代理

aws(学习笔记第六课) AWS的虚拟私有,共有子网以及ACL,定义公网碉堡主机子网以及varnish反向代理 学习内容: AWS的虚拟私有,共有子网以及ACL定义公网碉堡主机子网,私有子网和共有子网以及varnish反向代理 1. AWS的虚拟…

分享一个中国行政区划多边形2024版(含有十段线)

全国省市县三级行政区划分类 全国有省市县界限数据 十段线 有需要自取

[Linux系统编程] 线程同步(互斥锁,读写锁,死锁,条件变量,信号量)

一.线程同步概念 线程同步: 协同步调,对公共区域数据按序互斥访问。防止数据混乱,产生与时间有关的错误。 数据混乱的原因: 1.资源共享(独享资源则不会) 2.调度随机(意味着数据访问会出现竞争)—线程间竞争 3.线程间缺乏必要同步…

一篇闪击常用放大器电路(学习笔记)

文章目录 声明概念名词经典电路分析反向放大器同向放大器加法器减法器积分电路微分电路差分放大电路电流->电压转换电路电压->电流转换电路 虚短与虚断一、虚短二、虚断 一些碎碎念 声明 ​ 本文是主要基于以下两篇博客所做的笔记: 模电四:基本放…

图论day60|108.冗余连接(卡码网) 、109.冗余连接II(卡码网)【并查集 摧毁信心的一题,胆小的走开!】

图论day60|108.冗余连接(卡码网)、109.冗余连接II(卡码网)【并查集 摧毁信心的一题,胆小的走开!】 108.冗余连接(卡码网)109.冗余连接II(卡码网)【并查集 摧毁…

Flythings学习(四)串口通信

文章目录 1 串口编程基本步骤1.1 打开串口1.2 配置串口 1.3 读串口1.4 发送串口1.5 关闭串口 2 综合使用3 如何在软件上保证串口稳定通信4 flythings中的串口通讯5 协议接收部分使用和修改方法6 通讯协议数据怎么和UI控件对接 1 串口编程基本步骤 串口通信有5个步骤 1.打开串口…

【干货】Ftrans跨网数据摆渡系统,如何实现网间数据安全高效流转?

随着企业数字化转型的逐步深入,企业投入了大量资源进行信息系统建设,信息化程度日益提升。在这一过程中,企业也越来越重视核心数据资产的保护,数据资产的安全防护成为企业面临的重大挑战。 一、网络隔离的必要性 绝大多数企业为…

步进电机定时器与编码器定时器关系

速度环PID比较计数器的增量公式: 位置环PID比较计数器的增量公式:

【 香格里拉酒店-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞 …

gitLab配置ssh

1打开git命令行,创建秘钥 ssh-keygen -t rsa -b 4096 -C "用户名xxx.com" 2执行下面的命令查看公钥 cat ~/.ssh/id_rsa.pub 3#复制公钥到gitlab网址上ssh页面添加ssh的key(公钥) 4本地的git命令行中添加账户邮箱 git config -…

Centos安装Nginx 非Docker

客户的机器属于 Centos7 系列,由于其较为陈旧,2024开始众多镜像和软件源都已失效。此篇文章将详细记录在 Centos7 操作系统上从零开始安装 Nginx 的整个流程。 本文Nginx是安装在/usr/local/nginx下 详细步骤如下: 准备Nginx安装包&#x…

ABB高性能矢量型变频器ACS380的性能优势

ABB ACS380变频器是一款可靠、易用、灵活的高性能矢量型变频器,其优异的电机控制、耐久的设计以及与所有主要工业自动化网络的连接性而成为各类设备电机驱动的理想之选。 1. 广泛的功率范围 ABB ACS380 变频器拥有广泛的功率输出区间,在单项 230V 电压下…

springboot员工管理系统-计算机毕业设计源码35173

目 录 1 绪论 1.1 研究背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2 系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统用例分析 2.4 系统流程…

第三方软件测评机构分享:软件性能测试方法

软件性能测试指测试人员通过各种手段检测产品是否符合性能指标、评估系统服务能力和完成系统优化的测试活动,专业第三方软件测评机构卓码软件测评简要分享以下几种性能测试方法: 1.压力测试   通过对软件系统不断施加压力,识别系统性能拐…

07 django管理系统 - 部门管理 - 搜索部门

在dept_list.html中&#xff0c;添加搜索框 <div class"container-fluid"><div style"margin-bottom: 10px" class"clearfix"><div class"panel panel-default"><!-- Default panel contents --><div clas…

工程文件参考——STM32+HAL+SPI主从机通讯

文章目录 前言CubeMX设置SPI设置NSS设置 SPI从机代码SPI主机代码 前言 关于如何简单的写一个稳定的SPI主从机通讯&#xff0c;思路很简单 1、SPI高速传输的时候很容易出现错位之类的问题&#xff0c;CRC的校验首先是必要的。在STM32中SPI使用DMA通讯可以自动执行CRC的校验&…

路由器原理和静态路由配置

一、路由器的工作原理 根据路由表转发数据 接收数据包→查看目的地址→与路由表进行匹配找到转发端口→转发到该端口 二、路由表的形成 它是路由器中维护的路由条目的集合&#xff0c;路由器根据路由表做路径选择&#xff0c;里面记录了网段ip地址和对应下一跳接口的接口号。…

人工智能实训室建设的必要性

在当今科技迅猛发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;已不再局限于科幻电影的虚构情节&#xff0c;而是作为一股颠覆性力量&#xff0c;深刻影响着全球经济、社会乃至文化的发展。随着《新一代人工智能发展规划》等政策的出台&#xff0c;中国已明确将人工…