php エディターの Yuzi が、この記事で誰にでもよくある質問に答えます。「Postman と nginX の 502 のソケットがハングし、どちらの場合も GinGonic が StatusOk を返すのはなぜですか?」 " この質問には、さまざまなネットワーク フレームワークやサーバーの動作の違いが関係しています。その理由を分析し、読者が同様の問題を解決できるように解決策を提供します。
問題を単純化するために、応答が返されるまでに最大 2 分かかる可能性がある非常に長いルートがあります。これが私のサンプル http ハンドラーです:
リーリー ここで [GET] /health
を呼び出すと、route postman が Error: Socket Hanging を返します
gin-gonic から応答が返された時点で、## がログに記録されます #200わかりました###:###
[GIN] 2024/01/24 - 11:10:58 | 200 | 200 30.084587215s | ::1 |「/health」を取得
今度は、リバース プロキシとして nginX の背後に同じプロジェクトがあるため、サービスが
200 Ok
問題は
ルーティング タイムアウトに関連していると考えたので、github.com/gin-contrib/timeout
ライブラリを使用しましたが、成功しませんでした。回避策
http.Serverに
WriteTimeoutを設定して、
ソケットのハングを防ぐことができます。 または nginx 502。
興味深いことに、タイムアウトしても常に 200 がログに記録されますが、クライアントではエラーが発生します:
リーリー
以上がPin-Gonic がどちらの場合も StatusOk を返すのに、Postman と nginX ではソケットが 502 でハングするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。