Что происходит, так это то, что ваше приложение и / или ApplicationSpawners закрываются из-за тайм-аута. Чтобы обработать ваш новый запрос, Passenger должен запустить новую копию вашего приложения, что может занять несколько секунд даже на быстрой машине. Чтобы решить эту проблему, есть несколько параметров конфигурации Apache, которые вы можете использовать для поддержания активности вашего приложения.
Вот что я сделал на своих серверах. PassengerSpawnMethod и PassengerMaxPreloaderIdleTime - это наиболее важные параметры конфигурации в вашей ситуации.
PassengerSpawnMethod smart
PassengerPoolIdleTime 1000
PassengerMaxPreloaderIdleTime 0
PassengerMaxRequests 5000
Используя «умный» режим создания и отключив PassengerMaxPreloaderIdleTime, Passenger всегда будет хранить в памяти 1 копию вашего приложения (после первого запроса после запуска Apache). Отдельные Application
слушатели будут fork
редактироваться из этой копии, что является сверхдешевой операцией. Это происходит так быстро, что вы не можете сказать, должно ли ваше приложение порождать слушателя или нет.
Если ваше приложение несовместимо с умным порождением, я бы рекомендовал сохранить большое время PassengerPoolIdleTime и периодически заходить на ваш сайт с помощью curl и cronjob или monit или чего-то еще, чтобы слушатель оставался в живых.
Руководство пользователя для пассажиров - отличный справочник по этим и другим параметрам конфигурации.
изменить : если ваше приложение несовместимо с умным нерестом, есть несколько новых опций , которые очень хороши
PassengerPreStart http://myexample.com/
PassengerPreStart http://myexample2.com:3500/
PassengerMinInstances 3
Итак, если вы объедините PassengerPreStart и PassengerMinInstances, Passenger будет запускать 3 экземпляра сразу после загрузки apache и всегда будет поддерживать как минимум 3 экземпляра, поэтому ваши пользователи редко (если вообще когда-либо) будут видеть задержку.
Или, если вы уже используете умное создание (рекомендуется) PassengerMaxPreloaderIdleTime 0
, вы можете добавить, PassengerPreStart
чтобы получить дополнительное преимущество немедленного запуска.
Большое спасибо героям phusion.nl !