Alb*_*oda 7 javascript deployment node.js isomorphic-javascript next.js
您能否向我们推荐使用nextjs在生产中部署应用程序的最佳实践?
我们正在考虑以下策略:金丝雀部署,蓝/绿部署......我们有几个疑问来处理BUILD_ID.
现在,通过这种策略,我们面临着这样的错误:
INVALID_BUILD_ID,因为在部署的某个时刻,我们至少有两个不同版本的应用程序.
例如:
在Canary部署中,我们有两个不同的版本,Balancer将客户端发送到版本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)
Run Code Online (Sandbox Code Playgroud)
到目前为止,我们测试过:
将BUILD_ID重命名为在两个版本中都具有相同的哈希值,但我们认为这是一种不好的做法,因为我们认为客户端的缓存不会刷新预期的方式.
粘性会话是最可靠的,但我们处理一个无状态应用程序作为一个状态的应用程序,实际上是不正确的.
我们可以在前面放置一个缓存BUILD_ID的CDN,但是我们不确定我们应该为js文件的缓存分配时间.
| 归档时间: |
|
| 查看次数: |
351 次 |
| 最近记录: |