Установка лимита для времени выполнения скриптов php в случаях: веб-сервера Апачи; Nginx + Apache; чистый Nginx + php-fpm

sitecreator

Administrator
Команда форума
Если Nginx + Apache.
В конфиге Nginx для сайта:

Код:
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
Полагаем, что Apache при этом работает совместно с mod_php.
В соответствующем php.ini выставляем

Код:
max_execution_time = 600
Выставление больших значения для лимита времени выполнения скрипта - дурная практика, а потому рекомендуется только в крайних случаях. Большие значения (более минуты) могут быть необходимы для работы долгих скриптов, но это следствие неграмотного подхода к написанию программы. Долгие программы вообще не должны запускаться с использованием веб-сервера, для таких программ есть cli-php.

Необходимо помнить, что разумное значение для таймаута - это в первую очередь защита сервера от зависаний, падений и т.п. Непомерное увеличение зачений таймаута сильно снижает потенциал противодействия сервера против всевозможных атак и т.п. Высокие значения таймаута приводят к снижению стабильности работы сервера в целом и нередко к завышенному потреблению ресурсов.

Запуск скрипта через веб-сервер нужно для отдачи страницы пользователю в браузер. И использование веб-сервера изначально не предполагает непомерно долгую загрузку страницы в браузер. Поэтому по-умолчанию везде стоит разумное ограничение в 30-60 сек. Любой долгоработающий скрипт должен запускаться только через cli-php, но это справедливо для случая грамотно разработанного скрипта.
 
Верх