背景
有a,b兩個前端項目。
服務(wù)器1曾經(jīng)部署了a,服務(wù)器2部署了a,b
后產(chǎn)品融合,b的代碼融合進(jìn)入a
b項目提供了一個功能,可以通過url顯示圖片
問題現(xiàn)象
服務(wù)器1上,通過url訪問無法正常顯示圖片
服務(wù)器2上,通過url可以正常顯示圖片
排查思路
由于后來b項目的代碼融合進(jìn)入a,所以服務(wù)器1上顯示圖片的功能應(yīng)該是由a項目提供的
服務(wù)器2上顯示功能也應(yīng)如此。
于是打開2個服務(wù)器上的nginx配置,比較兩個服務(wù)器上a項目的轉(zhuǎn)發(fā)配置,發(fā)現(xiàn)是一樣的,無任何區(qū)別。
繼續(xù)觀察頁面,打開chrome的控制臺,查看訪問服務(wù)器2的url時的請求,發(fā)現(xiàn)訪問路徑是www.****.com/patientrecruit/linkDisplay?patientId=****&type=***
服務(wù)器1的url也是該路徑,但是訪問時報錯
查看兩臺服務(wù)器的nginx配置,發(fā)現(xiàn)服務(wù)器2上之前配置了/patientrecruit的轉(zhuǎn)發(fā),服務(wù)器1上沒有配置,但是現(xiàn)在已經(jīng)把b的代碼融合進(jìn)a了,這個轉(zhuǎn)發(fā)應(yīng)該去掉。于是我直接刪除/patientrecruit的轉(zhuǎn)發(fā)路徑下的靜態(tài)資源,再次訪問/patientrecruit,發(fā)現(xiàn)404。說明之前一直是按照該路徑去展示圖片的。這樣看起來,服務(wù)器1和2都有問題了。
于是找到前端開發(fā)人員,再次詳細(xì)詢問該業(yè)務(wù)邏輯,原來除了前端的改動外,后端也需要配合這個url的改動進(jìn)行代碼改動。找到后端開發(fā)人員,然后比對代碼,發(fā)現(xiàn)該url是在nacos中進(jìn)行配置,于是打開nacos,發(fā)現(xiàn)果真沒有改動配置。修改配置后,一切正常。