在 VPS 上部署 Next.js:从构建到 HTTPS
使用生产服务器、systemd、反向代理在 Linux VPS 上部署 Next.js 应用程序,并在切换流量之前进行检查。
您可以在没有 Vercel 的情况下托管 Next.js 应用程序。选择主要取决于您需要的服务器功能以及您想要拥有的运营工作。
可导出为静态文件的站点、经过身份验证的 SaaS 产品和按需重新生成页面的应用程序具有不同的托管合同。在选择提供商或更改框架之前,请从这些需求开始。
识别请求呈现的页面、操作、API、cookie、图像和重新验证。包括长期连接、后台工作和存储需求。这些比托管提供商的名称更可靠地确定约束。
将执行环境与平台集成分开。存储、身份验证或工作队列可以有自己的合同。部署页面不会自动迁移这些服务。
这些模型有助于构建决策。容器描述打包和执行,可以在 VPS 或托管平台上运行。这些选项并不都是相互排斥的。
在小屏幕上,水平滚动表格。
| 模型 | 适合什么时候 | 工作要核算 |
|---|---|---|
| VPS 上的节点服务器 | 你想要一个持久的服务器进程 | 代理、TLS、监控、更新和备份 |
| 容器 | 您想要一个可重现的发布环境 | 镜像、秘密、卷和部署生命周期 |
| 静态导出 | 所需的页面和功能可导出 | 文件托管和任何外部服务 |
| 托管平台 | 您想要委托部分操作 | 限制、Next.js 适应和依赖于使用的成本 |
运行节点服务器是由 Next.js 记录的自托管路径。您可以控制流程、预算和反向代理。这种控制还意味着监视内存、错误、证书和存储。
独立构建可以通过跟踪依赖项和生成的入口点来减少部署文件。它不会消除对 Node 的需求或确定应用程序内存使用情况。检查目标系统、本机模块和静态资产。
如果每个需要的页面都可以在构建时生成,静态导出可以简化操作。 The host distributes generated files;需要请求时处理的功能需要另一种设计或另一种服务。
选择此模式之前,请检查您的版本的限制。依赖于 cookie 的私有页面、服务器操作或构建时未知的动态路由在文件主机上不可用。表单可以调用外部 API,但 API 仍然是要操作的服务。
对于托管,请检查支持的 Next.js 功能、执行限制、缓存行为和区域限制。部署一个代表您的应用程序的示例,而不仅仅是一个主页。
比较计算、带宽、存储和您保留的运营工作。如果没有流量和高峰信息,声称一种型号总是更便宜将会产生误导。直接与提供商联系查看当前价格和条款。
PRNext 是遵循 Next.js 约定的应用程序的实验性运行时,具有部分兼容性。 You can evaluate it on your infrastructure.这会改变运行时并需要它自己的检查; VPS 上的自托管 Next.js 也可以保留 Next.js。
PRNext Host 是一项单独的托管服务。在其自己的页面上查看其可用性、条款和功能。要选择运行时,请从应用程序的功能要求开始,然后使用相同的工作负载来衡量资源。