私のアプリケーションでは、サーバ側でuWSGIを使用してnginxを使用しています。私は(応答時間> 4S)大きな要求を行うと、次のように表示されますuWSGIはOSErrorを発生させます:大量のリクエスト中に書き込みエラーが発生しました
SIGPIPE: writing to a closed pipe/socket/fd (probably the client
disconnected) on request _URL_ (ip XX.XX.XX.XX) !!!
uwsgi_response_writev_headers_and_body_do(): Broken pipe
[core/writer.c line 287] during GET _URL_ (XX.XX.XX.XX)
OSError: write error
uWSGIをストリームに書き込みをしようとしているようですが、このストリームがすでに閉じられています。私はnginxのログ(error.logに)チェックすると :もちろん
upstream prematurely closed connection while reading response
header from upstream ...
を、私のクライアント(RESTクライアントまたはブラウザ)が502エラーを受け取ります。
〜4秒後にこのエラーが発生します。
ただし、この問題を防ぐ方法はわかりません。
location my_api_url {
[...]
uwsgi_buffer_size 32k;
uwsgi_buffers 8 32k;
uwsgi_busy_buffers_size 32k;
uwsgi_read_timeout 300;
uwsgi_send_timeout 300;
uwsgi_connect_timeout 60;
}
しかし、問題はまだここにある: 私は私のnginxの設定ファイルにいくつかのパラメータを設定しようとしました。 は、私はまた、uWSGIの設定ファイル(wsgi.ini)で、これらのパラメータを設定しようとしました:応答時間を最適化しようとする
buffer-size=8192
ignore-sigpipe=true
ignore-write-errors=true
前に、私はこの問題は解決策を持っている願っています。私は別の投稿で働いているものは見つけられません。私は大量のデータを扱っているので、私の応答時間は、場合によっては4〜10秒の間になります。
は、あなたが私を助けることを願って:)
事前のおかげで多くのことを。
NGINXはプロキシの背後にありますか?通常、クライアントが接続を先に閉じたときに書き込みエラーが発生します。 –