8

私はnginxとuwsgiを備えたフラスコを備えたFacebookアプリを持っています。FacebookからPOSTを受信すると、常にエラーが発生します。

readv() failed (104: Connection reset by peer) while reading upstream

しかし、(GETメソッドを使用して)アプリに直接アクセスすると、スムーズに実行されました。私がしたこと:

  1. @app.routeをPOSTメソッドのみで制限します-機能しません。
  2. wsgiに制限を追加します: uwsgi_buffer_size(Facebookからのリクエストが大きい場合)、およびuwsgi_harakiri(uwsgiがリクエストを完了する前にタイムアウトを提供する場合)-機能しません。

djangoで回避策がありますが、フラスコに実装する方法がまだわかりません。誰か助けてもらえますか?

4

2 に答える 2

3

これはuwsgiのバグです。[uWSGI]からさらに多くを得ることができますいくつかのバグ。

簡単な解決策は、POST本文がnullであるか、POSTパラメータが不要な場合でも、wsgi.inputでPOST本文を読み取る必要があることです。

于 2012-06-20T07:52:54.930 に答える
0

問題は、「アップストリーム」(nginxがプロキシしている実際のプロセス)が接続を閉じていることです。

私の場合、Djangoは私のWebサーバーでありDATA_UPLOAD_MAX_NUMBER_FIELDS、POSTリクエストのフィールドが多すぎるため、より大きく設定する必要がありました。

于 2017-07-10T15:48:42.287 に答える