web-dev-qa-db-ja.com

「CURL:(92)HTTP / 2 Stream 1はきれいに閉じられませんでした:大規模データを要求しながらInternal_Error(ERR 2) "

APIを呼び出しながら大規模なJSONを返すDjangoアプリがあります。問題は、データを要求しているときに、データ自体が切り捨てられているため、フロントエンドがクラッシュしています。

私はDNSとSSLのクラウドフロントや、キャッシュのためのパフォーマンスの向上とその他の機能を提供しています。

私はAPIをカーリングしようとし、CURLから次のエラーを得ました。

_curl: (92) HTTP/2 stream 1 was not closed cleanly: INTERNAL_ERROR (err 2)
_

CloudFlareを無効にしてみましたが、機能しませんでした。しかし、私のlocalhostには、すべてがうまく機能します。

_HTTP/2 stream 1 was not closed cleanly: INTERNAL_ERROR (err 2)
* Closing connection 0
* TLSv1.2 (OUT), TLS alert, Client hello (1):
curl: (92) HTTP/2 stream 1 was not closed cleanly: INTERNAL_ERROR (err 2)
_

JSONはまったくチャンクされずに完全にフェッチされるべきです。

4
Devopsception

HTTPリクエストのContent-Lengthヘッダーを修正または削除します。

この問題が私に発生したとき、私はAWSゲートウェイに接続しようとしていました。 Postmanを使って正しい応答を得ることができましたが、同じヘッダーをcurlにコピーした場合、このエラーが表示されます。

curlでの要求の長さがostmanにあったものと同じになっていなかったので、私のために最終的に働いていたのはContent-Lengthヘッダーを削除していました。

私の場合、私はAPIをテストしていたのでこれが大丈夫ですが、このヘッダーを生産で削除することをお勧めしません。 CODEBASE内のこれが行われている場合は、長さが正しく計算されていることを確認してください。

NGINXを使用すると、2つのHTTP2仮想ホストが同じサーバー名をリッスンしている場合は、このエラーをカールで体験できます。 Nginx Configファイルのチェックを実行すると、何かが正しくないことを知らせて警告が表示されます。重複リストの修正/削除この問題を修正しました。

# nginx -t
nginx: [warn] conflicting server name "example.com" on 0.0.0.0:443, ignored
nginx: [warn] conflicting server name "example.com" on [::]:443, ignored
 _
0
jaywilliams