Olan şey, Uygulamanız ve / veya ApplicationSpawners'ınız zaman aşımı nedeniyle kapatılıyor. Yeni talebinizi işlemek için Passenger, uygulamanızın hızlı bir makinede bile birkaç saniye sürebilen yeni bir kopyasını başlatmalıdır. Sorunu çözmek için, Uygulamanızı canlı tutmak için kullanabileceğiniz birkaç Apache yapılandırma seçeneği vardır.
İşte özellikle sunucularımda yaptığım şey. PassengerSpawnMethod ve PassengerMaxPreloaderIdleTime, sizin durumunuzda en önemli yapılandırma seçenekleridir.
PassengerSpawnMethod smart
PassengerPoolIdleTime 1000
PassengerMaxPreloaderIdleTime 0
PassengerMaxRequests 5000
"Akıllı" yumurtlama modunu kullanarak ve PassengerMaxPreloaderIdleTime'ı kapatarak Passenger, uygulamanızın 1 kopyasını her zaman bellekte tutacaktır (Apache'yi başlattıktan sonraki ilk istekten sonra). Bireysel Application
dinleyiciler, fork
süper ucuz bir işlem olan bu kopyadan alınacaktır . O kadar hızlı gerçekleşir ki, uygulamanızın bir dinleyici oluşturması gerekip gerekmediğini söyleyemezsiniz.
Uygulamanız akıllı yumurtlama ile uyumsuzsa, dinleyicinin hayatta kalmasını sağlamak için büyük bir PassengerPoolIdleTime tutmanızı ve sitenizi periyodik olarak curl ve cronjob veya monit veya başka bir şey kullanarak vurmanızı öneririm.
Yolcu Kullanım Kılavuzu bu ve daha fazla yapılandırma seçenekleri için müthiş bir referanstır.
düzenleme : Uygulamanız akıllı yumurtlama ile uyumlu değilse , çok güzel bazı yeni seçenekler var
PassengerPreStart http://myexample.com/
PassengerPreStart http://myexample2.com:3500/
PassengerMinInstances 3
Dolayısıyla, PassengerPreStart ve PassengerMinInstitution'ı birleştirirseniz, Passenger apache yüklendikten hemen sonra 3 örneği döndürür ve her zaman en az 3 örneği açık tutar, böylece kullanıcılarınız nadiren (varsa) bir gecikme görür.
Veya akıllı yumurtlamayı (önerilen) PassengerMaxPreloaderIdleTime 0
zaten kullanıyorsanız, PassengerPreStart
anında başlatmanın ek avantajlarından yararlanmak için ekleyebilirsiniz .
Phusion.nl'deki kahramanlara çok teşekkürler !