問題タブ [hypercorn]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python-3.x - Python3.7 asyncio start webserver (FastAPI) と aio_pika コンシューマ
私のプロジェクトでは、REST API (FastAPI で構築され、Hypercorn で実行) を開始しようとしています。さらに、起動時に RabbitMQ コンシューマー (aio_pika を使用) も開始したいと考えています。
Aio Pika は、障害時に自動的に再接続する堅牢な接続を提供します。コンシューマーで以下のコードを実行するhypercorn app:app
と、残りのインターフェイスは正しく起動しますが、aio_pika からの再接続は機能しなくなります。2 つの異なるプロセス (またはスレッド?) で本番環境の安定した RabbitMQ コンシューマーと RestAPI をアーカイブするにはどうすればよいですか? 私のpythonバージョンは3.7です。私のアプローチがPythonの方法ではない場合に備えて、私は実際にはJavaとGoの開発者であることに注意してください:-)
python - Python Quart/Hypercorn のストリーミング応答により net::ERR_HTTP2_PROTOCOL_ERROR 200 が発生する
クライアントに応答をストリーミングするQuartアプリがあります。asyncio.sleep を使用して応答の完了を遅らせています。遅延を 59 秒に設定すると、すべて正常に動作します。ストリームは問題なく完了します。時間を 120 秒に増やすと、応答がタイムアウトしたように見えます。これはクライアントが受信したストリームの最初の部分ですが、約 60 秒後にブラウザが Chrome で次のようなエラーをスローします: net::ERR_HTTP2_PROTOCOL_ERROR 200. Firefox は TypeError をスローします。
NginxでHypercornを使用しています。
ハイパーコーンの config.py ファイルには次のように書かれています。
nginx.conf の関連する設定:
これを解決する方法がわかりません。
問題の原因がわかりました。Quart、Hypercorn、Nginx とは何の関係もありません。問題は Cloudflare と http2 にあり、WriteTimeout が原因です。この回答を参照してください: net::ERR_HTTP2_PROTOCOL_ERROR とは何ですか?
問題は、Cloudlfare でこれを変更する方法です。
Quart が http2 で動作するように構成されていません。
nginx - リバース プロキシ サーバー + Python HTTPS サーバーでは、誰が HTTPS 接続の SSL 証明書を処理する必要がありますか?
NGinX (HTTP/2 要求をプロキシしないため、おそらく別のもの) と Hypercorn の組み合わせを使用したいとします。どちらも SSL 証明書ファイルを処理できるため、HTTPS 要求に対してこれを行うのに最も適しているのは誰でしょうか。Hypercorn が 443 ポートをリッスンできることは私にとって重要ですが、certfile および keyfile パラメーターを指定せずにそれができるかどうかはわかりません。