Magentoのインストールがありますが、これは顧客の観点からは完全に機能します。ただし、adminでバッチタスクを実行しようとすると、Nginxがブラウザーへの接続を早期に閉じてしまい、ブラウザーで「サーバーからの空の応答」エラーが発生することがよくあります。バックエンドタスクは、完了するまでApache内で実行されます。 PHPは、Magentoのデフォルトのmax_execution_timeout 18000秒で構成されています。
これに関連する記事を見つけて、Nginxの設定で「send_timeout」ディレクティブを使用することを提案しました。したがって、18000秒のmax_execution_timeと同じ値に設定します。次に、単純に65秒間スリープするPHPスクリプトを作成しました(60秒でタイムアウトするようです)。
問題を抱えているのはブラウザだけではありません。私は得る:
curl:(52)サーバーからの空の応答
cURLからも。 HTTPディレクティブに他のあいまいなNginx構成ルールはありません。誰もがここで何が起こっているのか、そしてこれが起こらないようにする方法を知っていますか?私は少し迷っています。
バッチタスクを小さなもの(各10秒など)に分割し、AJAXを使用してページを更新し、進行状況を表示することをお勧めします。
応答を60秒待つのは長すぎます。操作が長くなるほど、失敗する可能性が高くなります。
小さいバッチに分割することにより、1つがクラッシュしても、ほんの一部しか失われません。
Fastcgiタイムアウトパラメータ(/etc/nginx/fastcgi_param.conf
)を確認してください。
または、proxy_read_timeout 90;
の/etc/nginx.conf
を増やしてみてください。