Nuxt.js(Vue SSR)创建项目到服务器(Nginx+PM2)部署详细流程(下)

简介: Nuxt.js(Vue SSR)创建项目到服务器(Nginx+PM2)部署详细流程(下)
  • 找到 nuxt.config.js,添加下面代码:
export default {
  head: {...},
  css: [...],
  // 配置服务器(主要是这个配置)
  server: {
    // port: 8000, // default: 3000
    host: '0.0.0.0', // default: localhost (推荐)
    // host: '0', // 等于 host: '0.0.0.0' 这样配置,在mac上这么配置没问题,但是在window上这么配置有报错。
    timing: false
  },
  • 再次运行项目,生产或开发都行,访问地址就会变成本机的 ip 地址加端口:
╭─────────────────────────────────────────╮
 │                                         │
 │   Nuxt @ v2.14.12                       │
 │                                         │
 │   ▸ Environment: development             │
 │   ▸ Rendering:   server-side            │
 │   ▸ Target:      server                 │
 │                                         │
 │   Memory usage: 29.4 MB (RSS: 74 MB)    │
 │                                         │
 │   Listening: http://10.0.93.169:3000   │
 │                                         │
 ╰─────────────────────────────────────────╯
  • 本地运行项目就到这里结束了,下面需要将项目发布到服务器运行起来。

四、Nuxt.js 上传服务器(Nginx + Node + PM2)

  • 下面的这些操作如果需要测试,可以放在本地机器上进行搭建,把本地电脑当服务器使使。
  • 服务器 安装 Nginx + Node + PM2
  • Nuxt.js 是依赖 Node,所以 服务器 需要安装 Node,装了 Node 就会自带 NPM,然后通过 NPM 安装 PM2:
$ npm install -g pm2
// 可以通过 -h 查询使用方式
$ pm2 -h
  • PM2Node 的进程管理工具。为啥用这个举个例子:运行项目之后,命令行窗口是不能关闭的,如果关闭了就无法访问这个项目地址了,所以需要支持关闭命令行窗口,运行的项目依然能够访问,也就是后台挂起进程,PM2 就可以做到这个事情。
  • 安装好上面环境,在 Nginx 根目录里面通过 Git 拉下来 Nuxt.js 源码,可以新开文件夹存放也是可以的,随你自己
$ git clone xxxxx.git
// 如果存在代码就拉一下代码 保持最新
$ git pull
  • 这里说一下,在网上搜一下会搜到很多只需要导入几个文件就可以运行项目的文章,但是这种方式有时候会出现 编译函数找不到资源文件找不到 之类的问题,所以如果不是特别熟悉 Nuxt.js 的话,直接将整个项目拉下来使用,不需要去单独导入某些文件,这样也完美的避开一些细节上的坑,网上的文章一般都是推荐导入下面几个文件:
.nuxt
static
nuxt.config.js
package.json
package-lock.json
  • 将代码拉到服务器后,需要先走一遍 npm 安装,安装一下依赖包
$ npm install
  • 然后编译项目
$ npm run build
  • PM2 运行项目,后台挂起,你的项目名称,可以随意填个,但是推荐跟项目 package.json 文件里面的 name 字段值一样,这样好区分。。
// 之前是通过 $ npm run dev 或者 $ npm run start,但是命令行窗口不能关闭
// 启动开发环境后台挂起,列举了常用的几种方式,任意选一种
$ pm2 start npm -- run dev
$ pm2 start npm --name "你的项目名称" -- run dev
$ pm2 start ./node_modules/nuxt/bin/nuxt.js 
....
// 启动生产环境后台挂起,列举了常用的几种方式,任意选一种
$ pm2 start npm -- run start
$ pm2 start npm --name "你的项目名称" -- run start
....
// 例如:服务器启动开发环境,开发环境只需要一行命令
$ pm2 start ./node_modules/nuxt/bin/nuxt.js 
// 例如:服务器启动生产环境,生产环境需要先 build 在 start
$ npm run build
$ pm2 start npm --name "nuxt-test" -- run start
// window 电脑注意:上面命令在 MAC 跟 服务器都可以生效,但是在 window 上如果做测试,
// 有部分命令无法生效,我用window 用的少,所以也没去深入折腾,这里给一下建议:
// window 电脑本地测试PM2挂开发环境,生产环境目前上面几种启动方式都无法挂载成功,直接上服务器挂就行了,本地只是用于测试,开发环境也不影响测试。
// 只能通过这行命令启动开发环境,生产环境的命令挂起无效,暂时没解决
$ pm2 start ./node_modules/nuxt/bin/nuxt.js 
  • 然后可以通过 $ pm2 list 查看是否挂起成功,这样显示了就是挂起成功了
┌─────┬──────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id  │ name         │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├─────┼──────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0   │ nuxt-test    │ default     │ N/A     │ fork    │ 1190     │ 0s     │ 0    │ online    │ 0%       │ 7.8mb    │ den… │ disabled │
└─────┴──────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
  • 现在就可以通过你这台电脑或者服务器的 ip 地址加端口号进行访问了,例如:http://10.0.90.164:3000/
  • 如果需要停掉后台挂起,执行删除命令即可,id 就是 $ pm2 list 列表中的 id 值:
// 删除单个挂起进程
$ pm2 delete id
// 删除全面挂起进程
$ pm2 delete all
例如:
$ pm2 delete 0
  • 如果项目修改调整了,上传了新的东西,只需要拉下代码编译后,重启 PM2 对应环境进程即可:
    开发环境 - 初始化:$ git pull + $ npm install + $ pm2 start npm --name "你的项目名称" -- run dev
    生产环境 - 初始化:$ git pull + $ npm install + $ npm run build + $ pm2 start npm --name "你的项目名称" -- run start
    注意:$ pm2 start .... 命令,每次启动都会在 $ pm2 list 列表中新增一个管理进程,所以只需要初始化创建了就行了,后面如果不是通过 $ pm2 delete id 手动删除了,就不需要每次 $ pm2 start ....,只需要重启即可:
    开发环境 - 后续版本更新:$ git pull + $ npm install + $ pm2 restart id
    生产环境 - 后续版本更新:$ git pull + $ npm install + $ npm run build + $ pm2 restart id
  • 额外说一句:如果 PM2 启动项目之后,不知道访问那个地址,那可以先 $ pm2 delete id 删除进程,执行自带的运行方式 $ npm run dev$ npm run start,需要哪个环境就运行哪个命令,运行之后可以拿到访问地址,拿到之后关掉,在通过 PM2 运行访问同意一个地址,注意端口号别变化了,如果端口被占用,会分配一个新的端口:
╭──────────────────────────────────────────╮
 │                                          │
 │   Nuxt @ v2.14.12                        │
 │                                          │
 │   ▸ Environment: production              │
 │   ▸ Rendering:   server-side             │
 │   ▸ Target:      server                  │
 │                                          │
 │   Memory usage: 29.4 MB (RSS: 74.6 MB)   │
 │                                          │
 │   Listening: http://10.0.90.164:3000/    │
 │                                          │
 ╰──────────────────────────────────────────╯
  • 最终通过 PM2 启动挂起之后,现在需要配置一下 Nginx,之前启动是 Node 服务,访问是没问题的,但是现在需要通过 Nginx 反代理到 Node,也就是通过 Nginx 去访问到 Node 的资源地址。
  • 找到 Nginxnginx.conf 文件,在里面添加一个新的服务,以及一个反代理服务
http {
  # 新建一个 nuxt server 服务
  upstream nuxt {
    # 这里就是上面配置的 Node ip + 端口号,之前默认是 localhost:3000
    server 0.0.0.0:3000;
    keepalive 64;
  }
  server {
    listen 8083; #服务器端口
    server_name www.nuxt.com;  #这里对应你服务器的域名
    location / {
        proxy_pass http://nuxt;  #这里对应上面 upstream 中新建的服务名
        index index.html index.htm;
    }
  }
}
  • 配置好这个之后,通过 $ nginx 启动 Nginx 或者 $ nginx -s reload 刷新 Nginx 配置文件生效。
  • 配置好之后,启动 Node,启动 Nginx,这样就可以直接通过 Nodeip + :3000端口 直接访问,也可以通过 Nginxip或域名 + :8083端口 访问了,对外当然是走 Nginx 了,配置一下域名。

  • 到这就完事了,其他就是项目内部的细节配置跟使用了,会写到另外的文章里面去!
  • Nuxt.js(Vue SSR)项目配置以及开发细节
  • 附带 PM2 配置文件的使用,作用就是将生产或开发环境设置到配置文件里面,只需要执行配置文件即可达到效果,当然也可以不用走配置文件,走上面命令行区分生产或开发环境也一样,看自己喜好。

相关文章
|
12天前
|
弹性计算 人工智能 运维
如何基于阿里云 ECS 一键部署 AskTable?
AskTable + 阿里云 ECS 一键私有部署方案,3 分钟快速搭建专属数据智能平台。无需复杂运维,支持弹性扩展、私网安全访问及AI对话式分析,助力企业高效、安全实现数据智能。
|
13天前
|
Java Linux Apache
在CentOS服务器上编译并部署NiFi源码
部署Apache NiFi在CentOS上是一个涉及细节的过程,需要注意Java环境、源码编译、配置调整等多个方面。遵循上述步骤,可以在CentOS服务器上成功部署和配置Apache NiFi,从而高效地处理和分发数据。
89 17
|
6天前
|
弹性计算 人工智能 前端开发
在阿里云ECS上部署n8n自动化工作流:U2实例实战
本文介绍如何在阿里云ECS的u2i/u2a实例上部署开源工作流自动化平台n8n,利用Docker快速搭建并配置定时任务,实现如每日抓取MuleRun新AI Agent并推送通知等自动化流程。内容涵盖环境准备、安全组设置、实战案例与优化建议,助力高效构建低维护成本的自动化系统。
120 5
|
1月前
|
弹性计算 安全 Linux
使用阿里云服务器安装Z-Blog博客网站流程,新手一键部署教程
本教程教你如何在阿里云99元服务器上,通过宝塔Linux面板一键部署Z-Blog博客。基于CentOS 7.9系统,从远程连接、安装宝塔面板、开放端口到部署Z-Blog全流程详解,操作简单,新手也能轻松搭建个人博客网站。
318 13
|
4天前
|
弹性计算 运维 安全
区别及选择指南:阿里云轻量应用服务器与ECS云服务器有什么区别?
阿里云轻量应用服务器适合个人开发者、学生搭建博客、测试环境,易用且性价比高;ECS功能更强大,适合企业级应用如大数据、高流量网站。根据需求选择:轻量入门首选,ECS专业之选。
|
4天前
|
弹性计算 运维 安全
阿里云轻量应用服务器与云服务器ECS啥区别?新手帮助教程
阿里云轻量应用服务器适合个人开发者搭建博客、测试环境等低流量场景,操作简单、成本低;ECS适用于企业级高负载业务,功能强大、灵活可扩展。二者在性能、网络、镜像及运维管理上差异显著,用户应根据实际需求选择。
|
12天前
|
弹性计算 ice
阿里云4核8G云服务器配置价格:热门ECS实例及CPU处理器型号说明
阿里云2025年4核8G服务器配置价格汇总,涵盖经济型e实例、计算型c9i等热门ECS实例,CPU含Intel Xeon及AMD EPYC系列,月费159元起,年付低至1578元,按小时计费0.45元起,实际购买享折扣优惠。
173 1
|
6天前
|
弹性计算 ice
阿里云4核8g服务器多少钱一年?1个月和1小时价格,省钱购买方法分享
阿里云4核8G服务器价格因实例类型而异,经济型e实例约159元/月,计算型c9i约371元/月,按小时计费最低0.45元。实际购买享折扣,1年最高可省至1578元,附主流ECS实例及CPU型号参考。
134 0
|
6天前
|
存储 弹性计算 安全
阿里云渠道商:新手如何选择阿里云ECS实例?
阿里云ECS凭借弹性扩展、稳定可靠与安全防护,助力企业高效上云。本文系统解析实例规格选择关键因素:业务场景匹配、性能评估、成本优化、地域部署与扩展规划,结合计费模式与实际需求,提供科学选型建议,助您精准匹配资源,提升云上效能。(238字)