web-dev-qa-db-ja.com

PythonでのuWSGI要求タイムアウト

UWSGIでリクエストのタイムアウトを設定しようとしましたが、正しい設定がわかりません。複数のタイムアウトオプション(ソケット、インターフェイスなど)があるようで、どの設定を構成するのか、どこで設定するのかがすぐにはわかりません。

私が探している動作は、RESTアプリケーションのリソース層へのリクエストにかかる時間を延長することです。

33

適切にharakiriパラメーターを探しています-要求が指定されたharakiri時間(秒単位)よりも長い場合、要求はドロップされ、対応するワーカーがリサイクルされます。

スタンドアロンuwsgi(ini config)の場合:

[uwsgi]
http = 0.0.0.0:80
harakiri = 30
...

Uwsgiの前にnginxプロキシがある場合は、タイムアウトも増やす必要があります。

  location / {
    proxy_pass http://my_uwsgi_upstream;
    proxy_read_timeout 30s;
    proxy_send_timeout 30s;
  }

(何らかの奇妙な理由で)60秒よりも長いタイムアウトが必要な場合は、uwsgiプロトコルを介した通信を検討できます。設定はnginxサイトと非常に似ています:

location / {
    uwsgi_read_timeout 120s;
    uwsgi_send_timeout 120s;
    uwsgi_pass  my_upstream;
    include     uwsgi_params;
}

uwsgi:

[uwsgi]
socket = 0.0.0.0:80
protocol = uwsgi
harakiri = 120
...
52
Tombart

設定http-timeout私のために働いた。私が持っています http = :8080なので、ファイルシステムソケットを使用する場合は、socket-timeout

16
iurii