我们在服务于HTML + CSS的10台Nginx服务器前使用Varnish。 CSS url的格式如下:" file-HASH.css" (使用HASH进行内容校验和)。
当我们部署(从版本A到B)应用程序时,这需要一些时间,在此期间(几秒钟),最终用户可以下载2个版本的HTML:
版本A没问题:缓存了file-A.css。
版本B的问题:Varnish可以从尚未部署的后端获取文件!然后返回404。
我看到了一些解决方案:
任何输入?
答案 0 :(得分:0)
你可以做一些事情。您可以启动一组新的环境服务器,将负载均衡器置于Varnish后面,将新版本部署到其中一个服务器组,然后将流量路由到新组(绿蓝)。
然而,最简单的解决方案是解除部署版本。首先部署具有所有新css文件的版本,然后在数据库中转换标志或部署使用这些文件的代码。将您的版本拆分为两个部分可能有点原始,但是当Varnish要求时,它将确保资源存在。