Приложение Zend Framework истекло со странным сообщением - PullRequest
1 голос
/ 02 декабря 2010

Я надеялся, что кто-нибудь сможет помочь мне понять, почему мое приложение не работает.Он построен с использованием Zend Framework.Я пытаюсь запустить скрипт, который занимает несколько минут, чтобы закончить.Он отлично работает на моей локальной машине (MAMP), но время ожидания на сервере Prod (Ubuntu).Соответствующие настройки php.ini на обоих серверах: max_execution_time = 600 max_input_time = 600 memory_limit = 512M post_max_size = 8M

Он должен работать в течение 10 минут до истечения времени ожидания, верно?На сервере Ubuntu он будет работать только в течение 1-2 минут, а затем время ожидания с сообщением, напечатанным в середине браузера:

"Внутренний сервер не ответил вовремя. Сервер приложений слишком занят ине может обрабатывать запросы вовремя. "

Я уверен, что это сообщение Zend, но я ничего не могу найти в Интернете.

Большое спасибо за любую помощь.

Ответы [ 2 ]

1 голос
/ 03 декабря 2010

Это сообщение выглядит так, как будто оно от mod_fastcgi.

Когда вы запускаете PHP под FastCGI (или что-то запускаете под FastCGI), скрипт PHP является отдельной сущностью от веб-сервера.Вы сконфигурировали свой процесс PHP для запуска до 10 минут, но Apache / mod_fastcgi настроен на ожидание только более короткого периода времени, пока ваш PHP-скрипт начнет возвращать данные.

Идея состоит в том, чтобы изолировать процесс apacheиз внешних процессов, которые уходят в сорняки и никогда не возвращаются (в конце концов, у apache закончились слушатели)

Если у вас есть доступ к разделу конфигурации FastCGI в httpd.conf, проверьте значения для -appConnTimeout или-idle-timeout.

К сожалению (или к счастью, если вы являетесь системным администратором в какой-либо хостинговой компании), вы не можете переопределить эти настройки через .htaccess или даже для каждого виртуального хоста.По крайней мере, не в соответствии с документацией

0 голосов
/ 07 декабря 2010

Оказывается, это был nginx, работающий на балансировщике нагрузки.Ошибка исходила от nginx, который работает под scalr.Следовательно, «Внутренний сервер не ответил вовремя. Сервер приложений слишком занят и не может своевременно обрабатывать запросы.» - ошибка скалера.Как только параметр proxy_read_timeout был повышен в конфиге nginx, сценарий прекратил отсчет времени.

Спасибо за ссылку на скаляр выше - указал мне правильное направление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...