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