• 请不要在回答技术问题时复制粘贴 AI 生成的内容
wuhaoworld
V2EX  ›  程序员

国内部署基于 Next.js 的项目,最优雅的方案是什么?

  •  
  •   wuhaoworld · Nov 9, 2024 · 6485 views
    This topic created in 727 days ago, the information mentioned may be changed or developed.

    小项目,一天可能几百个访问,希望能最低成本跑起来:

    方案 1:传统方式,pm2 管理

    双 11 活动 ¥99 买了阿里云便宜的 2 核(vCPU) 2 G 的机器,采用传统方式部署,在服务器上 build ,然后用 pm2 管理,nginx 代理,组件稍微多了点,build 过程直接就不响应断连了... 看来可能得 4G 内存起步。

    所以合理方式应该先本地 build 好,直接将 build 后的代码传到生产服务器?

    方案 2:自己在服务器上跑 Docker

    更规范一些,但配置要求比方案 1 更高

    方案 3:

    国内有没有像 Vercel 、Netlify 、Onrender 之类的服务或平台?求推荐

    32 replies  •  2025-11-02 13:15:51 +08:00
    wentx
    wentx
    Nov 9, 2024
    1
    Github Action + Local Runner ?
    magicflower
    magicflower
    Nov 9, 2024 via Android
    2
    目前用的是方案一
    服务器上打包部署 2h2g 完全够用,组件数量 100 左右。
    wuoty
    wuoty
    Nov 9, 2024 via Android
    3
    各类 serverless 平台,比如阿里云函数计算,腾讯云的 serverless
    Alexf4
    Alexf4
    Nov 9, 2024
    4
    CF ?
    IvanLi127
    IvanLi127
    Nov 9, 2024❤️1
    5
    在生产环境 build 可太偷懒了...
    Gilfoyle26
    Gilfoyle26
    Nov 9, 2024
    6
    国内为啥没有像 Vercel 、Netlify 、Onrender 之类的服务或平台呢?
    shiny
    shiny
    PRO
    Nov 9, 2024
    7
    推荐在方案 2 上用 kamal-deploy.org ,在本地 build 好后,服务器上拉下来部署,内存占用不多
    还有几个好用的功能:
    服务器自动部署 SSL 证书
    平滑部署
    回滚

    但只在国外服务器上用过,不知道国内体验如何
    shiny
    shiny
    PRO
    Nov 9, 2024
    8
    也可以自建类似 vercel 的平台,比如 coolify 、dokploy ,但内存消耗就有点多了。
    alansfinal
    alansfinal
    Nov 9, 2024
    9
    zeabur
    amlee
    amlee
    Nov 9, 2024❤️1
    10
    自部署一个 dokploy ,不过推荐 2c4g 的机器
    shui14
    shui14
    Nov 9, 2024
    11
    静态资源放 cloudflare ,api 放自己 vps ,几百个访问的话,搬瓦工最丐的 1 核 0.5g 都可以了
    maxmeng936
    maxmeng936
    Nov 9, 2024
    12
    不是内存的问题,是因为磁盘存储空间太小,应该只有 40G 吧,下载项目依赖时,磁盘读写很容易卡死
    COW
    COW
    Nov 9, 2024 via Android
    13
    没太明白,本地 build 不行么,另外方案 1 和 2 不冲突啊
    crackidz
    crackidz
    Nov 9, 2024
    14
    1 和 2 的资源差距没那么大,不过 2 要省事很多。如果你有 CI/CD pipeline 的话,这种安装依赖 build 过程可以在 pipeline 里执行,无需在服务器上运行。
    madtwilight
    madtwilight
    Nov 9, 2024 via Android
    15
    自建 dokploy.com +1 ,很好用
    huijiewei
    huijiewei
    Nov 9, 2024
    16
    @COW 本地 build 有些二进制依赖并不能兼容。一般都是建议和服务器同平台 build
    TheWalkingDead
    TheWalkingDead
    Nov 9, 2024
    17
    2G 内存服务器 build next.js ?想多了,我之前有个 8G 的都够呛。
    Sunzehui
    Sunzehui
    Nov 9, 2024
    18
    build 产物传 git 上,打包后 push 触发在服务器执行 pm2 reload
    COW
    COW
    Nov 9, 2024
    19
    @huijiewei 毕竟 OP 资源紧张,没法同平台 build 。如果没有调用 native 方法的话,先在本地弄个 docker 环境,直接把代码放在 docker 环境下,在本地 docker 里按方案 1 的方式 build 就行了,至于 nginx 、pm2 也放到 docker 里,服务端只需要一个镜像。
    leo72638
    leo72638
    Nov 9, 2024
    20
    @Gilfoyle26 #6 因为国内网站都要备案
    sfdev
    sfdev
    Nov 9, 2024 via Android
    21
    用 Github Action 自动构建上传到服务器。
    xiaoming1992
    xiaoming1992
    Nov 9, 2024
    22
    @magicflower 我去,老哥项目有 github 方便看一下吗?在我的 1h2g 小鸡上试过,随便写一点东西,就爆内存了,看看你有没有做什么优化
    xiaoming1992
    xiaoming1992
    Nov 9, 2024
    23
    @sfdev Github Action 能传到国内服务器上吗?我试过被墙了
    sfdev
    sfdev
    Nov 9, 2024 via Android
    24
    @xiaoming1992 现在不知道,我之前做过是可以上传的。
    vovov
    vovov
    Nov 10, 2024 via iPhone
    26
    @xiaoming1992 可以上传
    hugepizza
    hugepizza
    Nov 10, 2024 via iPhone
    27
    github action 3 步
    1. build docker image
    2. push 到阿里云的免费仓库
    3. ssh 到你的🐔上 触发更新镜像脚本
    WinstonCharles
    WinstonCharles
    Nov 11, 2024
    28
    可以试试 dokploy
    wuhaoworld
    wuhaoworld
    OP
    Nov 11, 2024
    29
    @amlee @shiny @madtwilight @WinstonCharles 感谢各位,尝试安装 dokploy ,因为是国内环境,还需要在服务器上配置科学上网,由此导致各种莫名其妙的问题,太心累...
    amlee
    amlee
    Nov 11, 2024
    30
    @wuhaoworld 国内机器不要配科学环境,容易被 ban 机器和账号。
    去 GitHub 上找一下使用 cloudflare woker 搭建 docker hub 代理的脚本,然后自己搭一个自己用
    roker
    roker
    Nov 2, 2025
    32
    dokploy 是最好用的没有之一,用海外的 VPS 最好
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4225 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 89ms · UTC 04:03 · PVG 12:03 · LAX 20:03 · JFK 23:03
    ♥ Do have faith in what you're doing.