工程在哪個(gè)網(wǎng)站做推廣比較合適長(zhǎng)沙正規(guī)競(jìng)價(jià)優(yōu)化推薦
問(wèn)題描述:
部署在測(cè)試環(huán)境的項(xiàng)目在執(zhí)行某功能時(shí),后臺(tái)程序在執(zhí)行過(guò)程中,前端控制臺(tái)在一分鐘左右會(huì)報(bào)出Request failed with status code 504,Gateway time out異常。但是在本地開(kāi)發(fā)環(huán)境會(huì)正常運(yùn)行,并不會(huì)報(bào)出異常。
問(wèn)題分析:
- 可能是本地環(huán)境和測(cè)試環(huán)境的后臺(tái)代碼或配置不同;
- 可能是本地環(huán)境和測(cè)試環(huán)境的前臺(tái)代碼或配置不同;
- 可能是本地環(huán)境和測(cè)試環(huán)境的環(huán)境不同;
排查過(guò)程:
- 針對(duì)問(wèn)題1、2,將所有代碼重新提交,查看nacos中不同空間下的配置文件,將代碼、配置進(jìn)行統(tǒng)一;查找訪問(wèn)鏈路中可能控制超時(shí)時(shí)間的配置進(jìn)行調(diào)整。先后判斷了后端feign的超時(shí)參數(shù)、gateway的response-timeout等參數(shù),前端請(qǐng)求超時(shí)的參數(shù),并未發(fā)現(xiàn)問(wèn)題。隨后通過(guò)Apifox對(duì)測(cè)試環(huán)境后端接口進(jìn)行單獨(dú)調(diào)用,發(fā)現(xiàn)并未出現(xiàn)504異常??梢猿醪降贸鼋Y(jié)論,問(wèn)題可能出現(xiàn)在前端向后端發(fā)送請(qǐng)求的過(guò)程中。
- 針對(duì)問(wèn)題3及排查步驟1中得出的結(jié)論,開(kāi)始排查兩個(gè)環(huán)境的部署差異,發(fā)現(xiàn)測(cè)試環(huán)境部署了nginx,而本地開(kāi)發(fā)環(huán)境并未部署。根據(jù)這一環(huán)境差異,查閱資料nginx有下面三個(gè)參數(shù)對(duì)超時(shí)有控制:proxy_connect_timeout、proxy_read_timeout、proxy_send_timeout,以上參數(shù)默認(rèn)值均為60s。此時(shí)猜測(cè)超時(shí)異常與該配置有關(guān)。
- 根據(jù)排查步驟2中的猜測(cè),在nginx配置文件中添加proxy_connect_timeout、proxy_read_timeout、proxy_send_timeout三個(gè)參數(shù),并測(cè)試不同時(shí)間下,超時(shí)異常是否會(huì)出現(xiàn)。經(jīng)過(guò)幾次測(cè)試,發(fā)現(xiàn)超時(shí)異常依然存在。
- 根據(jù)排查步驟3中的情況,使用systemctl status nginx指令查看nginx狀態(tài),發(fā)現(xiàn)添加參數(shù)后nginx并沒(méi)有熱部署,因此使用systemctl restart nginx指令重啟nginx。再次測(cè)試,超時(shí)異常消失。問(wèn)題解決。