2013-05-04 2 views
2

Я запускаю сервер Nginx + PHP-FPM, и у меня есть сценарий, который должен выполняться более 30 минут. Через 240 секунд он перестает функционировать и возвращает ошибку шлюза 502 от Nginx.Сценарий истекает через 240 секунд

PHP-FPM Вход для исполнения:

[03-May-2013 19:52:02] ВНИМАНИЕ: [бассейн WWW] ребенок 2949, сценарий «/ вар/WWW/оболочка/import_db .php '(запрос: «GET /shell/import_db.php») время исполнения (239.971196 сек), завершение
[03-май-2013 19:52:02] ПРЕДУПРЕЖДЕНИЕ: [пул www] ребенок 2949 вышел на сигнал 15 (SIGTERM) после 540.054237 секунд с начала
[03-май-2013 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», host: «www.example.net»

Я запустил этот скрипт на сервере apache + suphp и безупречно выполняет его. Безусловно, я включаю: set_time_limit(0); наверху моего сценария.

Максимальное время выполнения в соответствии с phpinfo() составляет 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 безрезультатно. Какую настройку или конфигурацию мне не хватает из того или иного, что я мог проверить?

ответ

0

Когда вы запускаете nginx с php-fpm, nginx пытается поддерживать связь с детьми php-fpm. Вы должны установить следующую директиву, чтобы изменить это:

fastcgi_keep_conn off;

Смежные вопросы