next.js项目部署流程

两种部署方式

一、静态部署

如果只需要静态页面展示,可以使用

  1. 修改 next.config.js
bash 复制代码
  output: 'export',
// 不加这两个,样式不生效
  basePath: '/xxx', // 在服务器放out内容的文件夹名
  assetPrefix: '/xxx',
  1. 构建并导出
bash 复制代码
npm run build
npm run export

导出后生成out文件夹

把out/里的文件放到服务器的个人指定的路径下

3.nginx配置

bash 复制代码
location /a {
    alias xxx/xxx/a; // 路径
    index index.html index.htm;
    error_log /var/log/testqianduan_error.log;
    try_files $uri $uri/ /a/index.html;
}

二、SSR部署

如果需要服务端渲染、API接口、动态数据等,就使用SSR。

  1. 要把 完整项目 上传到服务器上

  2. 在服务器中安装所需要的工具

需要安装npm和PM2

PM2是用来守护后台进程的

bash 复制代码
# 用nvm安装 Node.js
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# 让配置生效
source ~/.bashrc
# 验证nvm安装成功
nvm -v
# 安装node.js20
nvm install 20
nvm use 20
bash 复制代码
# 安装pm2
npm install -g pm2
pm2 -v
  1. 部署操作
bash 复制代码
# 安装依赖、构建
cd 你的项目目录
npm install
npm run build
bash 复制代码
# 利用PM2管理后台守护进程
pm2 start ecosystem.config.js
pm2 save
bash 复制代码
# ecosystem.config.js文件
module.exports = {
  apps: [
    {
      name: "shooting-sports-system",
      cwd: "服务器上的项目路径", 
      script: "node_modules/next/dist/bin/next",
      args: "start", // 默认监听3000端口
      //args: "start -p 3001", // 如果想监听其他端口
      env: {
        NODE_ENV: "production"
      }
    }
  ]
}

3.nginx配置

bash 复制代码
server {
    listen 80;
    server_name example.com;

    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;
    }
}

配置完记得重启nginx

bash 复制代码
nginx -s reload

总结:

要在服务器上安装node.js,然后在服务器上跑npm install、npm run build,再用PM2托管。

注意:

最好在服务器上执行npm install、npm run build,本地执行的再拷到服务器,可能会出现依赖不兼容的问题

相关推荐
excel2 小时前
Marked 与 Markdown 有什么区别?该怎么选?
前端
龙亘川2 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
程序喵大人2 小时前
【C++入门】内存模型与资源管理 - 09 shared_ptr 和 weak_ptr 解决共享,也带来代价
开发语言·c++·资源管理·智能指针·内存模型
Da Da 泓2 小时前
五子棋 Web 端测试用例报告
前端·网络·websocket·网络协议·测试用例·项目
Raas1003 小时前
AI网关部署方案?从部署到上线全流程
java·开发语言·人工智能·gateway·ai网关·企业级ai网关·企业级ai产品
zxcvb1533 小时前
远程查看本地文档:一条轻量 Web 文件服务的工程化链路
前端·远程查看文档
niucloud-admin3 小时前
NIUCLOUD PHP SAAS上门家政使用文档:城市管理
java·前端·php
程序员大阳4 小时前
副队长JavaScript教程(50)-DOM:网页开发的起点
javascript·dom·es·节点·概念·document·关系
专注仿真4 小时前
线性回归和逻辑回归算法详解
开发语言·人工智能·python·大模型训练·控制算法
北岛贰4 小时前
啵啵音乐迎来全新升级!
前端