陈大剩博客

部署 Node 生产项目

  • 陈大剩
  • 2025-05-05 22:32:46
  • 70

部署 node 项目

背景

最近,BOSS 让我搭建一下几个开源 AI 平台,因为之前没有搭过 Node 项目,顺带记录一下,防止以后踩坑,也是对自己知识点的一个补充吧,也顺带给各位网友复习一下。

部署步骤

安装宝塔面板

一般应用于生产环境的的服务器都是安装的不带桌面的版本 linux 系统,面对着黑乎乎的命令行窗口,即便是稍微熟悉点的童鞋管理服务器也会觉得繁琐,这时候可以通过界面代替命令行来操作服务器;

宝塔 就是这样一款国产的免费的面板,要使用宝塔面板首先需要开启端口。

腾讯云:https://www.bt.cn/bbs/thread-1229-1-1.html(opens new window)
阿里云:https://www.bt.cn/bbs/thread-2897-1-1.html(opens new window)
华为云:https://www.bt.cn/bbs/thread-3923-1-1.html(opens new window)
然后执行下面的命令即可:

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh  

中途如果询问 Do you want to install Bt-Panel to the /www directory now?(y/n): 输入 y 回车即可。
宝塔安装

安装成功后会有登录链接账号以及密码,浏览器里打开链接输入账号密码登录(中间有 SSL 证书验证问题,选择信任即可),记住先不要做任何操作。

安装 Node.js 管理器

部署 Node 项目,当然离不开安装 Node,宝塔面板中 Node 管理形式是可以多版本并存的,所以我们可以先安装 ”Node 版本管理器“,安装 ”Node 版本管理器“ 如下:

  1. 点击应用商店;
  2. 应用搜索为 “node”;
  3. 点击安装;

安装 Node.js 管理器

安装指定的 Node 版本

安装好 ”Node 版本管理器“ 后需要安装 Node,安装 Node 如下:

  1. 先需要更新 Node 列表,才能获取 Node 所有版本;
  2. 然后选择稳定的版本(随机选择一个就行);
  3. 选择后点击安装;

安装指定的 Node 版本

安装完成后需要查看 Module 中(yarn、npm、pm2)是否安装,如下:

  1. 点击模块;
  2. 查看 yarn、npm、pm2 是否有安装;
    查看 Module

上传项目至服务器

如果是部署开源项目,可以到 GitHub 中通过 Git 方式下载项目。

git clone https://github.com/SoraWebui/SoraWebui.git 

注意:请使用 HTTPS 协议克隆,SSH 协议需要登入。

上传项目至服务器
等待下载:

等待下载

安装 Node 依赖

进入项目后,可以先查看项目下 package.json,看看有默认携带什么参数,比如这里带了 --port 80 ,这几个地方可以先记住,后面可能会用到。

  "scripts": {
    "dev": "next dev --port 80",
    "build": "next build",
    "start": "next start"
  },

package.json文件中,scripts 字段用于定义一系列可以通过 npmyarn 运行的脚本命令。以下是对这个 scripts 部分中各个命令的详细解释:

  • next dev:这是 Next.js 提供的一个开发服务器启动命令。当你运行这个命令时,Next.js 会启动一个开发服务器,该服务器会监听文件的变化,并在文件发生改变时自动重新编译和刷新页面,方便开发人员进行开发和调试;
  • next build:Next.js 会对应用进行编译和优化,将代码打包成生产环境可用的静态文件和服务器端代码。这个过程会进行代码的压缩、优化、树摇(Tree Shaking)等操作,以提高应用的性能和加载速度;
  • next start:在运行这个命令之前,需要先执行next build命令进行构建。next start会启动一个生产环境的服务器,该服务器会使用next build生成的文件来提供服务。生产环境的服务器通常会有更好的性能和稳定性,适合在生产环境中部署和运行;

安装 Node 依赖
克隆成功后需要安装相应的 Node 依赖,可以针对环境用不同的环境变量,.env.production 用于生成环境,.env.loacl 用于开发环境。

开发环境
并填好相应的值

填好相应的值

本地开发

如果你只想简单的本地调试并开发,可直接 yarn dev,不出意外不会成功,因为还没有安装 node 模块。

本地开发
安装 node 模块直接 yarn 即可,等待安装就行。

安装 node 模块

注意:如果不是国外服务器,yarn 或 npm 请修改为国内镜像。

再运行yarn dev 发现还是没有成功,这是因为装了 Nginx 等软件,已经占用了 80 端口,那需要换端口。

yarn dev

跳去之前的目录上 安装 Node 依赖,修改之前的 80 端口为 8080,再执行 yarn dev

安装 Node 依赖
不出意外浏览器就访问了

浏览器访问
curl 也能访问了

curl 访问

部署为生产项目

部署为生产项目,需要先 build 构建好。
build
build
稍微等待至 Done 即处理成功,然后可以用 Nginx 做反向代理,Nginx 按照之前 [安装 Node.js](#安装 Node.js 管理器) 一样安装就行。

Nginx 反向代理

Nginx 反向代理好处应该不要多说吧?宝塔中 Nginx 反向代理操作如下:

  1. 选择网站;
  2. 选择 Node 项目;
  3. 添加 Node 项目;
  4. 按照标题填好相应的内容即可;
    1. 目前选择我们之前下载的;
    2. 名称按照自己的意愿来;
    3. 运行选项一般选 start(生产);
    4. 端口生产默认为 3000;
    5. 域名填好就行;

 Nginx 反向代理

外网访问

不出意外就能访问啦,开启你的部署之旅吧。
部署之旅

总结

刚开始接到老板需求的时候,我以为会遇到很多坑(对陌生领域的抗拒),具体实践下来比想象中的简单不少。总体来说,通过宝塔,有一点点基础就能部署 Node 项目,应该好好感谢宝塔,让新手不再苦难。

分享到:
0

说点儿什么吧

头像

表情

本站由陈大剩博客程序搭建 | 湘ICP备2023000975号| Copyright © 2017 - 陈大剩博客 | 本站采用创作共用版权:CC BY-NC 4.0

站长统计| 文章总数[132]| 评论总数[11]| 登录用户[26]| 时间点[136]

logo

登入

社交账号登录