在nginx集群上升级vue项目,踩坑过程

目的:部署项目到nginx集群的三个节点上。升级代码

过程很简单,rpm run build 后的 dist目录打包后,分别上传到三个节点下的。

1、初步我是先替换了node1节点的代码(node1、node3还是旧代码),想着刷新页面,如果负载均衡到node1上就能看出的我的代码是否修改成功了。问题出现了,只要负载到node1,就报js语法错误(<token......,首先项目在本地跑是正常的。但是着这个错误浪费了我很多时间,以为是代码的问题,网上查了很多资料。都是无功而返)。公司的前辈也很纳闷。此时代码不敢升级了,世界杯期间访问量很大。

2、为了先排出代码问题:将node1从pool种剔除,然后直接访问node1,一切正常。

3、难道是pool出问题了。然后自己搭建了测试环境。部署了两台nginx,部署我的代码,访问一切正常。我靠,没法复现线上问题,焦虑。。。。。

4、针对上一步,琢磨,要复现必须要保持和线上操作一摸一样。哪儿不一样呢?--第三步我是第一次部署。而第一步我是升级代码。我应该模拟升级代码。

5、此时测试环境跑的是我的最新的代码,访问正常。然后像第一步那样升级其中一个节点。哇,bug复现。到底是什么原因呢?我们的pool的策略不对?看了看也没问题啊,最重要的是用了那么久了,不可能策略有问题。

6、关键的尝试:我刚才升级了其中一个节点的代码,然后升级了另一个节点的代码,额,访问正常了。也就是说node的代码不一致就会出现这种问题的。--按常理不应该的。。。什么事都会发生哎。

7、这才写了一个批量升级脚本,和批量回滚脚本。升级线上代码,成功!!(顺便又测试了我的回滚脚本,回滚-升级-回滚。。。。。能一直玩下去)

注:线上项目升级,脚本非常重要性。方便你我他。。。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章