分析
原因は関連パラメータの不適切な設定によるもので、簡単に解決できます
nginx と uwsgi を統合する場合、タイムアウトの設定に使用できるパラメータが 3 つあります:
1.uwsgi_connect_timeout:
uwsgi-server への接続のタイムアウトは 75 秒を超えることはできません。タイムアウト期間内に接続が失敗すると、切断が試行されます。 uwsgi_read_timeout:
デフォルトは、uwsgi プロセスが応答データを送信するまで nginx が待機するタイムアウト期間です。出力結果を生成するために長時間実行する必要がある uwsgi プロセスがある場合は、このパラメーターを増やす必要があります。エラーログファイルに
が表示される場合 アップストリームがタイムアウトした場合は、このパラメータを増やす必要があります。タイムアウト期間を過ぎても応答が受信されない場合、nginx は接続を閉じます
3.uwsgi_send_timeout:
デフォルトは 60 秒で、nginx が uwsgi プロセスにリクエストを送信するためのタイムアウト時間です。タイムアウトは、リクエスト全体ではなく、2 つの書き込み操作の間の時間によって計算されます。タイムアウト期間後に書き込みアクションがない場合、nginx は接続を閉じます
さらに、uwsgi 自体にもパラメーター harakari があり、各リクエストにこの値よりも時間がかかる場合、リクエストは放棄され、対応するワーカーが終了します。取り戻されます
私の例:
nginx.conf
xtyw_file.conf->location (この設定は、nginx.conf の include import を通じて有効になります)
上記では、django+uwsgi+nginx - Error:nginx:504 Gateway Time out を紹介しており、関連する内容も含めて、PHP チュートリアルに興味のある友人に役立つことを願っています。