2

Nginx + PHP-FPM サーバーを実行しており、30 分以上実行するスクリプトがあります。240 秒後に機能しなくなり、Nginx から 502 ゲートウェイ エラーが返されます。

実行の PHP-FPM ログ:

[2013 年 5 月 3 日 19:52:02] 警告: [プール www] 子 2949、スクリプト '/var/www/shell/import_db.php' (要求: "GET /shell/import_db.php") の実行がタイムアウトしました(239.971196 秒)、終了
[2013 年 5 月 3 日 19:52:02] 警告: [プール www] 開始から 540.054237 秒後にシグナル 15 (SIGTERM) で子 2949 が終了しました
[2013 年 5 月 3 日 19:52:02]注意: [プール www] 子 3049 始めました

実行の Nginx ログ:

2013/05/03 19:52:02 [エラー] 2970#0: *1 recv() が失敗しました (104: ピアによって接続がリセットされました) アップストリーム、クライアント: 98.172.80.203、サーバー: www.example. net、リクエスト: "GET /shell/import_db.php HTTP/1.1"、アップストリーム: "fastcgi://127.0.0.1:9000"、ホスト: "www.example.net"

このスクリプトを apache+suphp サーバーで実行したところ、問題なく実行されました。set_time_limit(0);それでも、スクリプトの先頭に: を含め ています。

によると、max_execution_timephpinfo()は 1800 秒です (これはもともと 300 秒でしたが、機能させるためにこれまで上げました)。

FastCGI Nginx 構成:

## Fcgi Settings
include                        fastcgi_params;
fastcgi_connect_timeout        60;
fastcgi_send_timeout           180s;
fastcgi_read_timeout           600s;
fastcgi_buffer_size            4k;
fastcgi_buffers 512            4k;
fastcgi_busy_buffers_size      8k;
fastcgi_temp_file_write_size   256k;
fastcgi_intercept_errors       off;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param  SCRIPT_NAME     $fastcgi_script_name;
# nginx will buffer objects to disk that are too large for the buffers above
fastcgi_temp_path              /tmpfs/nginx/tmp 1 2;
#fastcgi_keep_conn              on; # NGINX 1.1.14
expires                        off; ## Do not cache dynamic content

php-fpm と nginx を再起動しましたが、役に立ちませんでした。これに欠けている、または確認できる設定または構成は何ですか?

4

1 に答える 1