不带 Vercel 的主机 Next.js:如何选择

您可以在没有 Vercel 的情况下托管 Next.js 应用程序。选择主要取决于您需要的服务器功能以及您想要拥有的运营工作。

可导出为静态文件的站点、经过身份验证的 SaaS 产品和按需重新生成页面的应用程序具有不同的托管合同。在选择提供商或更改框架之前,请从这些需求开始。

列出部署后必须运行的功能

识别请求呈现的页面、操作、API、cookie、图像和重新验证。包括长期连接、后台工作和存储需求。这些比托管提供商的名称更可靠地确定约束。

将执行环境与平台集成分开。存储、身份验证或工作队列可以有自己的合同。部署页面不会自动迁移这些服务。

比较托管模型

这些模型有助于构建决策。容器描述打包和执行,可以在 VPS 或托管平台上运行。这些选项并不都是相互排斥的。

在小屏幕上,水平滚动表格。

架构选择。确切的功能取决于版本和平台。
模型适合什么时候工作要核算
VPS 上的节点服务器你想要一个持久的服务器进程代理、TLS、监控、更新和备份
容器您想要一个可重现的发布环境镜像、秘密、卷和部署生命周期
静态导出所需的页面和功能可导出文件托管和任何外部服务
托管平台您想要委托部分操作限制、Next.js 适应和依赖于使用的成本

当您需要服务器控制时选择 VPS

运行节点服务器是由 Next.js 记录的自托管路径。您可以控制流程、预算和反向代理。这种控制还意味着监视内存、错误、证书和存储。

独立构建可以通过跟踪依赖项和生成的入口点来减少部署文件。它不会消除对 Node 的需求或确定应用程序内存使用情况。检查目标系统、本机模块和静态资产。

在反向代理后面的 VPS 上部署 Next.js

检查静态导出是否足够

如果每个需要的页面都可以在构建时生成,静态导出可以简化操作。 The host distributes generated files;需要请求时处理的功能需要另一种设计或另一种服务。

选择此模式之前,请检查您的版本的限制。依赖于 cookie 的私有页面、服务器操作或构建时未知的动态路由在文件主机上不可用。表单可以调用外部 API,但 API 仍然是要操作的服务。

通过真实的旅程评估托管托管

对于托管,请检查支持的 Next.js 功能、执行限制、缓存行为和区域限制。部署一个代表您的应用程序的示例,而不仅仅是一个主页。

比较计算、带宽、存储和您保留的运营工作。如果没有流量和高峰信息,声称一种型号总是更便宜将会产生误导。直接与提供商联系查看当前价格和条款。

将 PRNext 放入此决策中

PRNext 是遵循 Next.js 约定的应用程序的实验性运行时,具有部分兼容性。 You can evaluate it on your infrastructure.这会改变运行时并需要它自己的检查; VPS 上的自托管 Next.js 也可以保留 Next.js。

PRNext Host 是一项单独的托管服务。在其自己的页面上查看其可用性、条款和功能。要选择运行时,请从应用程序的功能要求开始,然后使用相同的工作负载来衡量资源。

检查 PRNext 迁移的范围

评估 PRNext 是否适合您的应用

来源和进一步阅读

返回博客