ホームページ > バックエンド開発 > Golang > Go アプリが Heroku 上で正常にビルドされるのに、「アプリケーション エラー」で失敗するのはなぜですか?

Go アプリが Heroku 上で正常にビルドされるのに、「アプリケーション エラー」で失敗するのはなぜですか?

DDD
リリース: 2024-12-17 05:28:24
オリジナル
174 人が閲覧しました

Why Does My Go App Build Successfully on Heroku But Fail with an

Golang アプリケーションを Heroku にデプロイ: ビルドは成功するが、アプリケーション エラーが発生する

Godep サポートを使用して GoLang アプリケーションを Heroku にデプロイしようとした最初の試みは、ビルドは成功しましたが、アプリケーションのエンドポイントにアクセスすると「アプリケーション エラー」が発生しました。この問題をトラブルシューティングするには、問題とその解決策を詳しく調べてみましょう。

問題の概要:

デプロイされたアプリがエンドポイント (例: '/) にアクセスする際に応答しません。 ')。 Heroku ログには、「Web プロセスが $PORT にバインドできませんでした。」というエラーが表示されます。

解決策:

Heraku では、アプリケーションが Web サーバーをポートにバインドする必要があります。 PORT 環境変数で指定されます。ただし、アプリケーション コードは現在、ポート 9000 でサーバーを起動します。

これを解決するには、アプリケーションのサーバーを Heroku によって指定されたポートで起動する必要があります。その方法は次のとおりです。

import "os"

func main() {
  // ... (your existing code)

  // Get the port from the PORT environment variable, or default to 9000 if not set
  port := os.Getenv("PORT")
  if port == "" {
      port = "9000" // Default port if not specified
  }

  // Start the server on the specified port
  err := grace.Serve(":" + port, context.ClearHandler(http.DefaultServeMux))

  // ... (your existing code)
}
ログイン後にコピー

正しいポートにバインドすると、アプリケーションで「ブート タイムアウト」エラーが発生しなくなり、Heraku のポートを介して HTTP ポートと HTTPS ポートの両方でリクエストを正常に処理できるようになります。ゲートウェイ。

以上がGo アプリが Heroku 上で正常にビルドされるのに、「アプリケーション エラー」で失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート