python - 編寫API時(shí),遇到504錯(cuò)誤,如何正確處理
問題描述
自己寫了個(gè)測試數(shù)據(jù)庫連接的API,發(fā)現(xiàn)本地測試時(shí),數(shù)據(jù)庫的ip地址錯(cuò)誤可以正常返回自己定義的錯(cuò)誤,但是放到自己的服務(wù)器上測試,發(fā)現(xiàn)請求會(huì)超時(shí),并且返回html格式的504錯(cuò)誤.后端是采取python,flask,部署是結(jié)合uwsgi和Nginx。
問題解答
回答1:504錯(cuò)誤是服務(wù)器正在作為一個(gè)網(wǎng)關(guān)或代理來完成客戶端的請求,因?yàn)楹笈_(tái)代碼可能訪問了另一個(gè)服務(wù)器,我這里是訪問了一個(gè)遠(yuǎn)程數(shù)據(jù)庫,所以服務(wù)器為了完成這個(gè)請求,去訪問這個(gè)遠(yuǎn)程數(shù)據(jù)庫的服務(wù)器,但是沒有得到及時(shí)的響應(yīng),因?yàn)榕浜狭薔ginx,所以一個(gè)請求設(shè)置的超時(shí)時(shí)間時(shí)60s,在這個(gè)時(shí)間段內(nèi),還是沒有得到及時(shí)的響應(yīng),返回504錯(cuò)誤。我設(shè)置了連接遠(yuǎn)程數(shù)據(jù)庫的超時(shí)時(shí)間為60秒以內(nèi),他就可以返回錯(cuò)誤信息,并被我的后臺(tái)捕獲到異常,然后返回我自己的定義的錯(cuò)誤格式。
回答2:服務(wù)器返回504說明沒有響應(yīng)請求,可能是出現(xiàn)了意料之外的錯(cuò)誤
檢查一下業(yè)務(wù)邏輯,針對(duì)每種情況都要給前端返回響應(yīng),最好帶上錯(cuò)誤信息

網(wǎng)公網(wǎng)安備