1. ホーム
  2. configuration

[解決済み】NginxのFastCGIでゲートウェイのタイムアウトを防ぐには?

2022-04-12 22:03:17

質問

私はDjango、FastCGI、Nginxを動かしています。 私は、誰かが XML 経由でデータを送信し、それを私が処理し、送信された各ノードのステータスコードを返すような API を作成しています。

問題は、XMLの処理に時間がかかりすぎると、Nginxが504 Gateway Time-outを投げてしまうことです -- 60秒以上だと思います。

そこで、/apiという場所にマッチするリクエストがあれば、120秒間タイムアウトしないようにNginxをセットアップしたいのですが、可能でしょうか? どのような設定をすれば、それを達成できるでしょうか。

今のところあるのは

    # Handles all api calls
    location ^~ /api/ {
        proxy_read_timeout 120;
        proxy_connect_timeout 120;
        fastcgi_pass 127.0.0.1:8080;
    }

編集:私の持っているものは動作しません :)

解決方法は?

プロキシのタイムアウトは、プロキシのためのもので、FastCGIのためのものではありません...

FastCGI のタイムアウトに影響を与えるディレクティブは以下の通りです。 client_header_timeout , client_body_timeoutsend_timeout .

Edit : nginx の wiki にあることを考慮すると send_timeout ディレクティブ は、レスポンスの一般的なタイムアウトを設定する役割を担っています(これは少し誤解を招きやすいものでした)。FastCGI では fastcgi_read_timeout に影響を及ぼしています。 FastCGI プロセス応答タイムアウト .