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

43 天前
 wuhaoworld

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

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

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

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

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

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

方案 3:

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

3039 次点击
所在节点    程序员
31 条回复
wentx
43 天前
Github Action + Local Runner ?
magicflower
43 天前
目前用的是方案一
服务器上打包部署 2h2g 完全够用,组件数量 100 左右。
wuoty
43 天前
各类 serverless 平台,比如阿里云函数计算,腾讯云的 serverless
Alexf4
43 天前
CF ?
IvanLi127
43 天前
在生产环境 build 可太偷懒了...
Gilfoyle26
43 天前
国内为啥没有像 Vercel 、Netlify 、Onrender 之类的服务或平台呢?
shiny
43 天前
推荐在方案 2 上用 kamal-deploy.org ,在本地 build 好后,服务器上拉下来部署,内存占用不多
还有几个好用的功能:
服务器自动部署 SSL 证书
平滑部署
回滚

但只在国外服务器上用过,不知道国内体验如何
shiny
43 天前
也可以自建类似 vercel 的平台,比如 coolify 、dokploy ,但内存消耗就有点多了。
alansfinal
43 天前
zeabur
amlee
43 天前
自部署一个 dokploy ,不过推荐 2c4g 的机器
shui14
43 天前
静态资源放 cloudflare ,api 放自己 vps ,几百个访问的话,搬瓦工最丐的 1 核 0.5g 都可以了
maxmeng936
43 天前
不是内存的问题,是因为磁盘存储空间太小,应该只有 40G 吧,下载项目依赖时,磁盘读写很容易卡死
COW
43 天前
没太明白,本地 build 不行么,另外方案 1 和 2 不冲突啊
crackidz
43 天前
1 和 2 的资源差距没那么大,不过 2 要省事很多。如果你有 CI/CD pipeline 的话,这种安装依赖 build 过程可以在 pipeline 里执行,无需在服务器上运行。
madtwilight
42 天前
自建 dokploy.com +1 ,很好用
huijiewei
42 天前
@COW 本地 build 有些二进制依赖并不能兼容。一般都是建议和服务器同平台 build
TheWalkingDead
42 天前
2G 内存服务器 build next.js ?想多了,我之前有个 8G 的都够呛。
Sunzehui
42 天前
build 产物传 git 上,打包后 push 触发在服务器执行 pm2 reload
COW
42 天前
@huijiewei 毕竟 OP 资源紧张,没法同平台 build 。如果没有调用 native 方法的话,先在本地弄个 docker 环境,直接把代码放在 docker 环境下,在本地 docker 里按方案 1 的方式 build 就行了,至于 nginx 、pm2 也放到 docker 里,服务端只需要一个镜像。
leo72638
42 天前
@Gilfoyle26 #6 因为国内网站都要备案

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1087954

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX