黑白梦黑白梦

toggle navtoggle nav
  • 文章
  • 专栏
  • 文章
  • 专栏

Next.js SSR 部署总结笔记

发布于 2026-02-13, 更新于 2026-02-14

最近将博客从 SSG 改成了 SSR ,基于原有的数据库和前台界面,通过 AI 编程完全重写写了后端接口和管理端界面,实现前后端同构、服务端渲染等。在此记录一些部署中遇到的问题,以及 PM2 + Nginx 的部署配置信息。

解决服务器打包 TS 卡死(类型检查过慢)

在服务器环境跑 next build 时,TypeScript 的完整类型检查可能非常慢,甚至卡死。解决思路是区分本地开发与服务器构建:

  • 服务器构建时临时跳过 TS 类型检查(只在构建阶段跳过,不影响日常开发严格性)。
  • 示例做法:使用环境变量控制 ignoreBuildErrors。
    • 在构建脚本中设置:IGNORE_BUILD_TYPES=true
    • Next 配置中读取该变量并打开 typescript.ignoreBuildErrors
  • 优点:避免 CI/服务器因 TS 深度检查拖垮,同时本地仍保持严格校验。

避免页面被静态化

Next.js App Router 会尝试静态化页面(SSG),但当页面依赖数据库或需要实时数据时,会在构建期触发 DB 连接。

解决方式:对相关页面显式声明强制动态渲染

export const dynamic = 'force-dynamic';

适用场景:

  • 页面依赖数据库
  • 页面依赖登录态
  • 页面需要实时数据

解决本地启动一直 Compiling

在开发和部署过程中,升级了 Next.js 版本,遇到了本地启动非常卡的情况,开发工具一直显示 Compiling。

原因是 .next 里的增量编译 / 缓存状态损坏或不一致,导致 Next.js 在 dev 模式下等不到“编译完成信号”。比如:

  • Node / Next 版本升级后, .next 还是旧结构,缓存结构不兼容,
  • 分支切换,路由结构变了,文件 hash 变了,.next 还在,依赖图对不上

解决方式:删除 .next 目录就好了。可以在 package.json 加一个便捷命令:

{
  "scripts": {
     "dev:clean": "rimraf .next && next dev",
  }
}

dev 卡在 Compiling 超过 1 分钟,就可以尝试删除 .next 目录。

PM2 部署命令

Next.js SSR 运行时需要 Node 进程常驻,PM2 是常见守护方式。推荐的启动方式:

  • 使用 npm 脚本启动 Next:
    • pm2 start npm --name heibaimeng-blog-ssr -i max -- start
  • -i max 表示按 CPU 核数启动集群模式
  • 通过 PM2 提供的 start/stop/reload/delete 管理
  • 关键点:-i max 必须放在 -- 之前,确保传给 PM2 而不是 npm

Nginx 配置

将 SSR 服务与静态文件分离,可以提升性能并降低 Next 的静态文件压力。

配置示例:

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

location /uploads/ {
    alias /var/www/html/uploads/;
    try_files $uri =404;

    expires 30d;
    add_header Cache-Control "public";
}
  • / 走 Next SSR 服务
  • /uploads/ 静态直出,由 Nginx 直接返回
  • 缓存头和过期策略已配置,适合图片/附件类资源
本文收录于专栏

黑白梦博客建设分享

一些博客建设的记录

©2015-2026 黑白梦 粤ICP备15018165号

联系: heibaimeng@foxmail.com