Vue3+Nuxt4 SSR项目Ubuntu部署全流程与问题排查
2026/9/4 4:42:25 网站建设 项目流程

这次我们来看一个非常实用的技术操作:将基于 Vue3 和 Nuxt4 开发的 SSR 网站,部署到 Ubuntu 服务器上。对于很多前端开发者来说,本地开发环境跑得顺风顺水,但一到服务器部署环节,就可能遇到各种环境问题、权限问题或配置陷阱。这篇文章的目标就是帮你跨过这个坎。

这个部署流程的核心,不是理解复杂的服务器架构,而是确保你的应用能在生产环境中稳定、高效地运行。我们将重点关注从代码打包、服务器环境准备、服务进程管理到最终访问验证的全链路操作。无论你使用的是阿里云、腾讯云等云服务器,还是自己的物理服务器,只要系统是 Ubuntu,这套方法都通用。

本文会带你完成以下关键步骤:首先,在本地完成 Nuxt 应用的构建,生成适合生产环境的文件。然后,通过 SSH 连接到你的 Ubuntu 服务器,配置 Node.js 环境、安装 PM2 进程管理工具。接着,将构建好的文件上传到服务器,并配置 Nginx 进行反向代理,实现域名访问和 HTTPS(可选)。最后,我们会验证服务是否正常运行,并介绍如何排查常见的部署问题。

如果你正在寻找一份能直接上手、避免踩坑的 Vue3 + Nuxt4 SSR 项目部署指南,那么这篇文章就是为你准备的。我们不讲空泛的理论,只聚焦于可执行、可验证的操作步骤。

1. 核心能力速览

在开始具体操作前,我们先通过一个表格快速了解这次部署涉及的核心技术栈和关键点,让你对整体流程有个清晰的把握。

能力项说明
前端框架Vue 3 (Composition API)
服务端渲染框架Nuxt 4 (基于 Nitro 服务端引擎)
部署目标系统Ubuntu Server (推荐 20.04 LTS 或 22.04 LTS)
运行时环境Node.js (版本需与 Nuxt 4 兼容,推荐 18.x 或 20.x)
进程管理PM2 (用于守护进程、日志管理、集群模式)
Web 服务器Nginx (用于反向代理、静态文件服务、负载均衡)
代码传输SCP / SFTP / Git (将本地构建产物上传至服务器)
核心验证通过公网 IP 或域名访问 SSR 渲染的页面
适合场景需要 SEO 优化、首屏加载速度快的 Vue 应用生产部署

2. 适用场景与使用边界

这次部署方案主要适用于哪些项目和开发者?

适用场景:

  1. 需要 SEO 优化的内容型网站:如企业官网、博客、新闻资讯、电商商品列表页等,利用 SSR 服务端渲染生成对搜索引擎友好的 HTML。
  2. 追求首屏性能的应用:希望用户打开页面时能立刻看到内容,而不是先加载一个空白的 HTML 再通过 JavaScript 渲染。
  3. 使用 Vue3 和 Nuxt4 技术栈的团队:希望将开发完成的应用部署到自有或云端的 Ubuntu 服务器上。
  4. 学习全栈部署流程的前端开发者:希望掌握从开发到上线的完整闭环,理解服务端环境配置。

使用边界与注意事项:

  1. 非静态站点:如果你的网站完全是静态内容,没有动态数据或用户交互,使用nuxt generate生成静态文件并部署到 CDN 或对象存储可能是更简单、成本更低的选择。
  2. 高并发与复杂后端逻辑:Nuxt SSR 适合处理前端渲染和简单的 API 代理。如果业务涉及复杂的后端逻辑、数据库高频读写或极高的并发量,应考虑将核心业务 API 拆分为独立的微服务,Nuxt 仅作为 BFF (Backend For Frontend) 层。
  3. 服务器资源:SSR 服务需要常驻内存的 Node.js 进程,会持续占用 CPU 和内存资源。你需要为服务器准备足够的内存(建议至少 1GB 空闲内存)和稳定的网络环境。
  4. 运维成本:相比静态部署,SSR 部署需要你维护服务器、监控进程、处理日志、定期更新系统和依赖,具备一定的运维知识。

3. 环境准备与前置条件

在动手部署之前,请确保你已满足以下所有条件。这是后续所有步骤能够顺利进行的基础。

本地开发环境:

  1. 一个可运行的 Vue3 + Nuxt4 项目:确保你的项目在本地通过npm run dev可以正常启动和访问。
  2. Node.js 与 npm:本地需要安装 Node.js(版本建议与服务器保持一致,如 18.x),用于执行构建命令。
  3. 代码版本管理:建议使用 Git 管理代码,便于在服务器上拉取和更新。

Ubuntu 服务器环境:

  1. 一台已安装 Ubuntu 的服务器:可以是云服务器(如阿里云 ECS、腾讯云 CVM)或本地虚拟机/物理机。系统版本推荐 Ubuntu 20.04 LTS 或 22.04 LTS,因为它们有长期支持。
  2. SSH 访问权限:你需要知道服务器的公网 IP 地址、SSH 端口(默认为 22)、以及拥有 sudo 权限的用户名和密码(或密钥)。
  3. 开放的网络端口:确保服务器的安全组或防火墙规则允许外部访问你计划使用的端口(例如:3000 用于 Node 服务,80 和 443 用于 Nginx)。
  4. 域名(可选但推荐):如果你希望通过域名访问网站,需要拥有一个已备案的域名,并将其 DNS 解析指向你的服务器公网 IP。

工具准备:

  1. SSH 客户端:如系统自带的终端(macOS/Linux)或 PuTTY、Xshell(Windows),用于连接服务器。
  2. 文件传输工具:如scp命令、rsync或 FileZilla 等 SFTP 客户端,用于上传文件。

4. 本地项目构建

部署的第一步不是在服务器,而是在你的本地开发机。我们需要将源代码转换为可以在生产服务器上直接运行的文件。

操作步骤:

  1. 检查与安装依赖:在项目根目录下,确保所有依赖都已正确安装。

    # 进入你的 Nuxt 项目目录 cd your-nuxt-project # 安装项目依赖(如果尚未安装) npm install # 或者使用 yarn/pnpm # yarn install # pnpm install
  2. 执行构建命令:Nuxt 4 的构建命令会编译你的 Vue 组件、打包资源,并生成服务端渲染所需的 Nitro 服务器文件。

    # 执行构建,这会生成 .output 目录 npm run build

    构建过程可能会花费一些时间,取决于项目复杂度。构建成功后,你会在项目根目录下看到一个名为.output的文件夹。这个文件夹包含了部署所需的全部内容。

  3. 验证构建产物:你可以先在本地预览构建后的效果,确保没有构建错误。

    # 预览生产环境下的应用 npm run preview

    命令执行后,通常会提示服务运行在http://localhost:3000。在浏览器中访问该地址,确认网站功能正常。这一步能提前发现一些仅在生产构建模式下出现的问题。

关键文件说明:

  • .output/public/:存放静态资源,如通过public/目录放入的图片、字体等,以及构建生成的 CSS、JS 文件。
  • .output/server/:存放服务端代码和入口文件,这是 SSR 的核心。
  • .output/server/index.mjs:Nitro 服务器的入口文件,PM2 将启动这个文件。

至此,本地准备工作完成。接下来,我们将焦点转移到服务器上。

5. 服务器基础环境配置

通过 SSH 连接到你的 Ubuntu 服务器,我们将开始配置运行 Node.js 应用所需的环境。

操作步骤:

  1. 连接服务器

    # 使用用户名和IP地址连接,按提示输入密码 ssh username@your_server_ip # 如果使用了非默认端口(如 2222) ssh -p 2222 username@your_server_ip
  2. 更新系统包列表:连接成功后,首先更新软件包索引。

    sudo apt update
  3. 安装 Node.js 和 npm:推荐使用 NodeSource 仓库安装特定版本的 Node.js,以获得更新的版本。

    # 以安装 Node.js 20.x 为例 # 首先添加 NodeSource 仓库 curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - # 然后安装 Node.js 和 npm sudo apt install -y nodejs # 验证安装 node --version # 应输出 v20.x.x npm --version # 应输出对应的 npm 版本
  4. 安装 PM2 进程管理器:PM2 可以让我们方便地启动、停止、重启应用,并实现进程守护和日志管理。

    # 全局安装 PM2 sudo npm install -g pm2 # 验证安装 pm2 --version
  5. 安装 Nginx:Nginx 将作为反向代理服务器,对外提供 Web 服务,并将请求转发给内部的 Node.js 应用。它还能处理静态文件、配置 SSL 等。

    sudo apt install -y nginx # 启动 Nginx 并设置开机自启 sudo systemctl start nginx sudo systemctl enable nginx # 验证 Nginx 是否运行 sudo systemctl status nginx

    如果状态显示为active (running),你可以在浏览器中访问服务器的公网 IP,应该能看到 Nginx 的欢迎页面。

6. 上传项目文件与启动应用

现在,我们需要将本地构建好的.output文件夹上传到服务器,并使用 PM2 启动应用。

操作步骤:

  1. 在服务器上创建项目目录:选择一个合适的目录存放你的应用,例如/var/www/

    # 创建项目目录,请将 `your-app-name` 替换为你的应用名 sudo mkdir -p /var/www/your-app-name # 更改目录所有权为你当前的用户,方便后续操作 sudo chown -R $USER:$USER /var/www/your-app-name
  2. 上传构建文件:从本地机器上传.output目录到服务器。这里以使用scp命令为例。

    # 在本地机器的终端中执行(不是在服务器上) # 将 /path/to/your-nuxt-project/.output 替换为你的实际路径 scp -r /path/to/your-nuxt-project/.output username@your_server_ip:/var/www/your-app-name/

    替代方案:你也可以使用rsync(更高效,支持增量同步)或 SFTP 图形化工具(如 FileZilla)来完成上传。

  3. 进入项目目录并安装生产依赖:虽然.output目录包含了运行所需的核心文件,但为了确保兼容性,最好在服务器上也安装package.json中定义的依赖(尤其是@nuxt/nitro等)。你需要将本地的package.jsonpackage-lock.json(或yarn.lockpnpm-lock.yaml)也上传到服务器同一目录。

    # 在服务器上,进入项目目录 cd /var/www/your-app-name # 上传 package.json 等文件后,安装生产依赖 npm ci --only=production # 使用 npm ci 可以确保根据 lock 文件精确安装,速度更快且环境一致
  4. 使用 PM2 启动应用:PM2 需要知道启动哪个文件。对于 Nuxt 4 构建的 Nitro 应用,入口文件位于.output/server/index.mjs

    # 在 /var/www/your-app-name 目录下执行 pm2 start .output/server/index.mjs --name "your-app-name"

    --name参数为你的应用指定一个在 PM2 中显示的名称。

  5. 验证 PM2 应用状态

    pm2 status

    你应该能看到你刚启动的应用,状态为online。同时,PM2 会显示应用占用的 CPU 和内存情况。

  6. 设置 PM2 开机自启:为了让服务器重启后应用能自动启动,需要生成启动脚本并启用。

    # 生成开机启动脚本 pm2 startup # 执行上述命令后,它会输出一行类似 `sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u username --hp /home/username` 的命令,你需要复制并执行它。 # 保存当前 PM2 进程列表,以便开机时恢复 pm2 save

此时,你的 Nuxt SSR 应用已经在服务器的3000端口(Nitro 默认端口)上运行了。但你无法直接通过外网 IP 的 3000 端口访问,因为通常云服务器的安全组默认只开放了 22、80、443 等少数端口。接下来,我们需要配置 Nginx 将外部请求转发到这个内部服务。

7. 配置 Nginx 反向代理

Nginx 将监听 80(HTTP)端口,并将接收到的请求转发给运行在localhost:3000的 Node.js 应用。

操作步骤:

  1. 创建 Nginx 站点配置文件:Nginx 的站点配置文件通常存放在/etc/nginx/sites-available/目录下。我们为应用创建一个新的配置文件。

    sudo nano /etc/nginx/sites-available/your-app-name

    你也可以使用vim或其他你熟悉的编辑器。

  2. 编辑配置文件内容:将以下配置粘贴到文件中。请将your_domain_or_ip替换为你的服务器公网 IP 地址或域名。

    server { listen 80; listen [::]:80; server_name your_domain_or_ip; # 例如:example.com 或 123.123.123.123 location / { proxy_pass http://localhost:3000; # 指向 PM2 启动的 Nuxt 应用 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_cache_bypass $http_upgrade; # 如果前端路由使用 history 模式,需要下面这行(Nuxt 默认是) # try_files $uri $uri/ /index.html; # 注意:Nuxt SSR 模式下通常不需要上面这行,因为服务端会处理路由。 } # 可选:静态文件由 Nginx 直接处理,效率更高 location /_nuxt/ { alias /var/www/your-app-name/.output/public/_nuxt/; expires 1y; add_header Cache-Control "public, immutable"; } }

    配置说明

    • proxy_pass: 这是核心指令,将所有请求转发给本机的 3000 端口服务。
    • proxy_set_header: 这些指令将客户端的真实 IP、协议等信息传递给后端的 Node.js 应用,对于 Nuxt 获取正确的请求上下文很重要。
    • 静态文件处理:将/_nuxt/路径的请求直接指向构建生成的静态资源目录,并设置长期缓存,可以显著提升性能。
  3. 启用站点配置:创建符号链接,将配置文件链接到sites-enabled目录。

    sudo ln -s /etc/nginx/sites-available/your-app-name /etc/nginx/sites-enabled/
  4. 测试 Nginx 配置并重载:在重启 Nginx 前,务必测试配置文件语法是否正确。

    sudo nginx -t

    如果输出syntax is oktest is successful,则说明配置无误。然后重载 Nginx 使配置生效。

    sudo systemctl reload nginx

8. 功能测试与效果验证

完成以上所有步骤后,现在是验证部署成果的时候了。我们将从多个维度检查应用是否正常运行。

操作步骤与验证点:

  1. 基础访问测试

    • 打开浏览器,访问你的服务器公网 IP 或域名(例如:http://your_server_ip)。
    • 预期结果:你应该能看到你的 Vue3 + Nuxt4 网站首页,并且功能与本地开发环境一致。
    • 验证 SSR:在页面任意处点击右键,选择“查看网页源代码”。你应该能看到完整的 HTML 内容,而不是一个只有<div id=”app”></div>的空壳。这证明服务端渲染正在工作。
  2. 检查服务进程状态

    # 检查 PM2 管理的应用状态 pm2 list # 或查看详细日志 pm2 logs your-app-name --lines 50
    • 预期结果pm2 list中应用状态应为online。日志中不应有持续报错,只有正常的 HTTP 请求记录。
  3. 检查 Nginx 访问日志与错误日志

    # 查看 Nginx 最近的访问记录 sudo tail -f /var/log/nginx/access.log # 查看 Nginx 错误日志(如果访问有问题) sudo tail -f /var/log/nginx/error.log
    • 当你刷新浏览器页面时,access.log中应该会出现对应的访问记录。
    • error.log应该保持为空或只有无关紧要的警告。
  4. 测试 API 路由(如果项目有):如果你的 Nuxt 项目在server/api/目录下定义了 API 接口,访问对应的路由(例如:http://your_server_ip/api/hello),检查是否能返回正确的 JSON 数据。

  5. 测试静态资源:访问一个明确的静态资源路径,例如http://your_server_ip/_nuxt/entry-[hash].js(具体文件名查看.output/public/_nuxt/目录)。该文件应该能被正确加载,并且响应头中应包含我们之前设置的长期缓存头Cache-Control: public, immutable

如果以上所有测试都通过,那么恭喜你,你的 Vue3 + Nuxt4 SSR 应用已经成功部署到 Ubuntu 服务器上了!

9. 进阶配置:域名与 HTTPS

如果你拥有一个域名,并希望启用 HTTPS 以提升安全性和专业性,可以按照以下步骤操作。这里使用 Let‘s Encrypt 提供的免费 SSL 证书,并通过 Certbot 工具自动化申请和配置。

操作步骤:

  1. 安装 Certbot

    sudo apt install -y certbot python3-certbot-nginx
  2. 配置域名 DNS:在你的域名注册商处,将域名(例如www.example.com)的 A 记录解析到你的服务器公网 IP。等待 DNS 生效(可能需要几分钟到几小时)。

  3. 运行 Certbot 获取证书

    sudo certbot --nginx -d your_domain.com -d www.your_domain.com

    your_domain.com替换为你的实际域名。Certbot 会与 Let‘s Encrypt 通信,验证你对域名的控制权(通过 Nginx 临时文件),然后自动下载证书并修改你的 Nginx 配置文件。

  4. 验证自动配置:Certbot 会自动修改我们在第 7 步创建的 Nginx 配置文件,添加监听 443 端口的 SSL 配置,并设置重定向(将 HTTP 跳转到 HTTPS)。你可以再次检查配置文件:

    sudo nano /etc/nginx/sites-available/your-app-name

    你会看到 Certbot 添加了listen 443 ssl;等指令,并引入了证书路径。

  5. 测试 HTTPS:在浏览器中访问https://your_domain.com。地址栏应该显示安全锁标志。同时,访问http://your_domain.com也会被自动重定向到 HTTPS 版本。

  6. 设置证书自动续期:Let‘s Encrypt 证书有效期为 90 天。Certbot 安装时会自动创建一个定时任务(cron job)来续期证书。你可以手动测试续期流程:

    sudo certbot renew --dry-run

    如果测试成功,证书到期前会自动续期。

10. 资源占用与性能观察

部署完成后,持续观察应用的资源使用情况对于稳定性至关重要。

观察指标与方法:

  1. PM2 监控:PM2 内置了简单的监控面板。

    pm2 monit

    这会打开一个实时仪表盘,显示所有被管理进程的 CPU、内存占用、日志等信息。

  2. 系统资源监控:使用htoptop命令查看整体系统资源。

    # 安装 htop(如果未安装) sudo apt install -y htop htop

    htop中,你可以找到你的 Node 进程(node .output/server/index.mjs),观察其内存和 CPU 使用率。一个中等复杂度的 Nuxt SSR 应用,内存占用可能在 200MB 到 500MB 之间,具体取决于代码量和访问量。

  3. Nginx 连接数:查看 Nginx 的活动连接数。

    sudo nginx -T 2>/dev/null | grep worker_connections # 通常输出 worker_connections 768; 或类似值 # 查看当前状态 sudo nginx -s status 2>/dev/null || echo “查看状态需要 Nginx 的 status 模块” # 更通用的方法是使用 netstat 或 ss ss -tulpn | grep :80 ss -tulpn | grep :443
  4. 日志轮转与清理:应用运行会产生日志,需要定期管理,避免磁盘被占满。

    • PM2 日志默认在~/.pm2/logs/目录下。可以配置日志轮转。
    • Nginx 日志在/var/log/nginx/。可以使用logrotate工具自动管理。
    • 建议定期(如每周)检查日志文件大小。

11. 常见问题与排查方法

部署过程中难免会遇到问题。下表列出了一些常见问题及其解决方法。

问题现象可能原因排查方式解决方案
浏览器访问服务器 IP 显示 “无法连接” 或 “连接被拒绝”1. 服务器防火墙或安全组未开放 80/443 端口。
2. Nginx 未运行。
3. 域名 DNS 未生效。
1.sudo systemctl status nginx检查 Nginx 状态。
2.curl -I http://localhost在服务器本地测试。
3. 使用ping your_domain.com检查 DNS 解析。
1. 配置云服务器安全组,放行 80 和 443 端口入站规则。
2. 启动 Nginx:sudo systemctl start nginx
3. 等待 DNS 生效或检查解析设置。
访问网站显示 “502 Bad Gateway”1. 后端 Node.js 应用(PM2)未启动或崩溃。
2. Nginx 配置中proxy_pass的端口错误。
3. Node.js 应用启动失败(如端口被占用、依赖缺失)。
1.pm2 list检查应用状态。
2.pm2 logs your-app-name查看应用错误日志。
3.netstat -tulnp | grep :3000检查 3000 端口是否被监听。
1. 重启 PM2 应用:pm2 restart your-app-name
2. 检查 Nginx 配置中的proxy_pass地址是否为http://localhost:3000
3. 根据应用日志修复错误,可能是缺少环境变量或模块。
访问网站显示 “404 Not Found” (Nginx)1. Nginx 的rootlocation配置错误。
2. 请求的静态文件不存在。
1. 检查 Nginx 配置文件语法:sudo nginx -t
2. 检查 Nginx 错误日志:sudo tail -f /var/log/nginx/error.log
1. 修正 Nginx 配置文件中root指令的路径或location规则。
2. 确保.output/public目录下的文件已正确上传。
页面样式丢失或 JS 不加载1. 静态资源路径错误。
2. Nginx 配置中未正确设置静态资源 location。
3. 构建生成的资源哈希不匹配。
1. 浏览器开发者工具 Network 面板查看资源加载状态(404?)。
2. 检查/_nuxt/路径下的文件是否能直接访问。
1. 确保 Nginx 配置中包含了处理/_nuxt/的 location 块,且alias路径正确。
2. 重新执行npm run build并上传新的.output目录。
PM2 应用频繁重启或状态为 “errored”1. 应用代码存在未捕获的异常。
2. 服务器内存不足。
3. 端口冲突。
1.pm2 logs your-app-name --lines 100查看详细错误堆栈。
2.free -h查看内存使用情况。
3.lsof -i :3000查看 3000 端口被谁占用。
1. 根据日志修复代码 Bug。
2. 增加服务器内存,或优化应用内存使用(如减少全局变量缓存)。
3. 更改 Nuxt 应用启动端口(在nuxt.config.ts中配置nitro.port),或停止占用端口的进程。
HTTPS 证书申请失败 (Certbot)1. 域名 DNS 未正确解析到服务器 IP。
2. 服务器 80 端口被防火墙阻止。
3. 之前配置的 Nginx 站点文件有误。
1.sudo certbot certificates查看现有证书。
2.sudo tail -f /var/log/nginx/error.log在申请时查看 Nginx 日志。
3. 使用在线工具检查域名解析。
1. 确保域名 A 记录指向正确的服务器 IP,并等待生效。
2. 确保服务器安全组和本地防火墙开放 80 端口。
3. 暂时简化 Nginx 站点配置,只保留最基本的 server 块,再运行 Certbot。

12. 最佳实践与使用建议

为了让你的生产环境更稳定、更易于维护,可以参考以下建议:

  1. 使用环境变量管理配置:不要在代码中硬编码数据库连接、API 密钥等敏感信息。使用.env文件,并在服务器上通过export或 PM2 的env选项设置。在nuxt.config.ts中可以通过runtimeConfig来读取。

    # 在服务器上设置环境变量 export API_BASE_URL=https://api.example.com # 或者在 PM2 启动时指定 pm2 start ecosystem.config.cjs
    // ecosystem.config.cjs module.exports = { apps: [{ name: 'my-app', script: '.output/server/index.mjs', env: { NODE_ENV: 'production', API_KEY: 'your-secret-key-here', }, }] };
  2. 实现 CI/CD 自动化:手动上传文件效率低下且易出错。可以考虑使用 GitHub Actions、GitLab CI 或 Jenkins 等工具,在代码推送到特定分支时,自动执行构建、测试、部署到服务器的流程。

  3. 定期备份与更新

    • 备份:定期备份你的项目目录 (/var/www/your-app-name)、Nginx 配置 (/etc/nginx/) 和数据库(如果有)。
    • 更新:定期更新服务器系统安全补丁 (sudo apt update && sudo apt upgrade)、Node.js 版本和项目依赖 (npm update),以修复安全漏洞。
  4. 监控与告警:除了基础的pm2 monit,可以考虑集成更专业的监控工具,如:

    • 日志集中管理:使用pm2-logrotate模块管理 PM2 日志,或使用 ELK Stack、Loki 等工具。
    • 应用性能监控:使用 Sentry 监控前端错误,使用 New Relic 或 AppSignal 监控 Node.js 后端性能。
    • 服务器监控:使用 Netdata、Prometheus + Grafana 监控服务器整体的 CPU、内存、磁盘、网络状态。
  5. 安全加固

    • 禁用 SSH 密码登录,改用密钥对认证。
    • 保持非 root 用户运行应用。
    • 为 Nginx 配置适当的安全头,如 CSP、HSTS 等。
    • 定期检查并更新依赖项中的安全漏洞 (npm audit)。

完成首次部署只是开始。后续的代码更新可以通过一个简单的脚本来实现:在本地构建后,通过rsync同步.output目录到服务器,然后在服务器上执行pm2 reload your-app-name即可实现无缝重启,几乎不影响用户访问。掌握这套流程后,你就能自信地将任何 Vue3 + Nuxt4 项目部署上线,并为其稳定运行保驾护航。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询