0

由於亞馬遜的論壇在發佈此問題時發生了錯誤。504關於特定POST請求的網關超時

我們使用Elastic Beanstalk運行單個nodejs(api)實例。 使用4個月後,突然發出用戶創建用戶請求失敗並出現504網關超時。與此同時,沒有對代碼或彈性beanstalk配置進行任何修改。 其餘請求正常工作。在本地測試時沒有錯誤。 在nginx錯誤日誌中發生以下情況: 上游超時(110:連接超時),從上游讀取響應標頭。 嘗試了Apache作爲代理,這給了一個類似的錯誤。

環境

  • 64位Linux的亞馬遜V2.1.0 2016.03 Node.js的運行
  • 4.3.0的NodeJS
  • Nginx的1.8.1

嘗試幾乎所有的東西,我們都出來了之後選項。 有什麼建議嗎?

由於提前, 馬可福音

+0

當試圖從本地服務器運行它時,發佈請求是否工作?嘗試到服務器(您可以使用eb cli執行此操作)並將您的請求發佈到localhost:。 –

+0

閃到我的服務器,並通過使用localhost:8081和遠程eb url嘗試發佈請求。 使用wget我在嘗試localhost時得到以下響應: 發送HTTP請求,等待響應...沒有收到數據。 嘗試遠程eb網址時,我得到了504網關超時。 – mkshake

+0

@mkshake你解決了這個問題嗎?我有類似的問題 – demsey

回答

0

如果您使用的是ELB,嘗試「空閒超時」設置爲較高的時間值。您可以使用AWS CLI做到這一點:

aws elasticbeanstalk update-environment --environment-name your-env-name --option-settings Namespace=aws:elb:policies,OptionName=ConnectionSettingIdleTimeout,Value=300 

我不知道,如果你可以從UI做到這一點,但我不這麼認爲。

+0

目前我們沒有運行負載平衡器。 ConnectionSettingIdleTimeout選項專供負載平衡器使用。 我玩了很多nginx代理超時,但我不認爲增加這個值將解決這個問題,因爲POST請求只需要在112ms和1500ms之間完成。 – mkshake