亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

aws elastic beanstalk golang 服務器 - 504 網關超時

aws elastic beanstalk golang 服務器 - 504 網關超時

Go
達令說 2023-02-06 19:33:49
我在這臺機器上有一個在 AWS elastic beanstalk 上運行的 golang Web 服務器:Go 1 running on 64bit Amazon Linux 2;當我向服務器發出請求并執行多個進程時發生錯誤,因此完成整個過程大約需要 90 秒,因此 60 秒后 AWS beanstalk 服務器結束客戶端連接并返回以下錯誤,盡管該過程90 秒后完全結束。它發送以下錯誤:<html> <head>   <title>504 Gateway Time-out</title></head> <body>   <center>       <h1>504 Gateway Time-out</h1>   </center></body> </html>源應用文件:.├── application.go├── cron.yaml└── public    └── index.html當我在我的本地機器上測試它時它運行良好并且需要 90 秒,只有當它在 Beanstalk 上運行時才會出現這個問題。我該如何解決?
查看完整描述

1 回答

?
largeQ

TA貢獻2039條經驗 獲得超8個贊

504 Gateway Timeout表示 nginx 代理等待上游應用響應的時間過長。如果這種情況發生在通常在幾秒后返回的端點上,很可能是 nginx 代理試圖到達您的應用程序未偵聽的端口(或者應用程序已崩潰)。

默認情況下,Elastic Beanstalk 將 nginx 代理配置為將請求轉發到端口 5000 上的應用程序。您可以通過將PORT環境屬性設置為主應用程序偵聽的端口來覆蓋默認端口。更多信息:AWS 反向代理文檔

確保您的應用程序代碼偵聽正確的端口。

http.ListenAndServe(":5000", nil);

另一個原因可能是應用程序代碼崩潰。檢查 Elastic Beanstalk 中的最后 100 行日志。您還可以通過 SSH 連接到您的服務器并運行cat /var/log/eb-engine.log.

反向代理

另外,您似乎正在嘗試靜態托管/public/index.html. 您可以通過兩種不同的方式執行此操作。


使用 Go(不推薦)

http.Handle("/", http.FileServer(http.Dir("./static")))

http.ListenAndServe(":3000", nil)

使用 Nginx(推薦)

通過擴展您的 nginx 配置,您可以使用代理服務器靜態托管文件并在它們訪問您的服務器應用程序之前重定向路由。


~/workspace/my-app/

|-- .platform

|   `-- nginx

|       `-- conf.d

|           `-- myconf.conf


查看完整回答
反對 回復 2023-02-06
  • 1 回答
  • 0 關注
  • 258 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號