javascript - NextJS 的部署策略建议

标签 javascript node.js deployment next.js isomorphic-javascript

您能否向我们推荐使用 nextjs 在生产环境中部署应用程序的最佳实践?

我们正在考虑以下策略:金丝雀部署、蓝/绿部署……我们对处理 BUILD_ID 有几个疑问。

现在,通过这种策略,我们面临着这个错误:

INVALID_BUILD_ID, because in some moment of the deployment we have at least two different versions of the application.



例如:

在 Canary 部署中,有一次我们有 2 个不同的版本,平衡器将客户端发送到
版本 A,但是当客户端需要其他资源时,平衡器可以将此请求发送到
版本为 B 的服务器。此时,当应用程序获取 serp.js、_error.js、_document.js 等资源并且网页未正确加载时,客户端会收到 500 错误。
_next/f6bff019-9550-4029-99fa-2b33a50045f6/page/index.js ---> old (previous deployment)

_next/005b2202-c5b2-4de6-afd8-1c8451d16ab3/page/index.js ---> new (current deployment)

到目前为止,我们已经测试过:
  • 将 BUILD_ID 重命名为在两个版本中具有相同的哈希值,但我们认为这是一种不好的做法,因为我们认为客户端的缓存不会按预期刷新。
  • 粘性 session 是最可靠的,但我们将无状态应用程序视为具有状态的应用程序,这确实不是真的。
  • 我们可以在前面放置一个缓存 BUILD_ID 的 CDN,但我们不确定应该为 js 文件的缓存分配的时间。
  • 最佳答案

    我建议您关注 JAMStack用于部署 NextJs 应用程序的模式。
    维塞尔 为 NextJS 提供最好的部署和托管服务,您可以从 开始免费
    你可以关注这个guide

    关于javascript - NextJS 的部署策略建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50289187/

    相关文章:

    deployment - Google云计算,使用环境变量

    azure - 如何仅将 dist 文件夹部署到 azure 网站?

    javascript - 将 json 数据渲染到 dhtmlx 调度程序

    node.js - 如何在 Nextjs 中添加 sitemap.xml

    mysql - 使用 node.js 将 xml 文件文本保存在数据库中

    javascript - 无需键即可调用 JSON 的元素

    java - 在 Spring-MVC 中部署多个环境

    javascript - Internet Explorer 11 中的 FormData.entries()?

    javascript - 为什么我的数组长度等于 0?

    javascript - 将 jQuery UI Timepicker 插件与 React 结合使用