- Konu sahibi
- #1
Apache sunucuda 503 hatasını çözmek için önce hatanın hangi istekte ve ne zaman oluştuğunu belirleyin; ardından Apache hata günlüğünü ve varsa isteğin yönlendirildiği uygulama veya PHP-FPM servisini kontrol edin. 503, hizmetin o anda isteği karşılayamadığını gösterir; tek başına Apache'nin arızalı olduğunu veya sunucu kapasitesinin artırılması gerektiğini kanıtlamaz. Günlükteki bulguya göre ilgili servisi, bağlantıyı veya kaynak darboğazını düzeltip aynı isteği yeniden deneyin.
Hata veren adresi, zamanı ve saat dilimini not edin. Sorunun yalnız belirli bir sayfada mı, bütün sitede mi görüldüğünü ve yakın zamanda bakım veya yapılandırma değişikliği yapılıp yapılmadığını belirleyin. Sitenin önünde içerik dağıtım ağı veya başka bir vekil sunucu varsa 503 yanıtı bu katmandan da gelebilir; Apache günlüğünde eşleşen kayıt bulunmaması tek başına yeterli kanıt değildir.
SSH erişiminiz varsa Apache'nin ilgili sanal konağındaki veya genel yapılandırmasındaki
Sayfayı tekrar açın ve aynı zamandaki hata kodunu ve mesajı inceleyin. İzlemeyi
Aşağıdaki ayrım, değişikliğe hangi noktadan başlayacağınızı belirlemenize yardımcı olur:
Arka uç bağlantısı başarısızsa: Apache, isteği PHP-FPM veya başka bir uygulama servisine aktarıyor olabilir. Günlükteki bağlantı adresini ya da soket yolunu Apache yapılandırmasındaki hedefle karşılaştırın. Hedef servisin çalıştığını, doğru adres veya soketi dinlediğini ve Apache'nin sokete erişim izni olduğunu kontrol edin. Servis durmuşsa önce kendi günlüklerinden nedenini bulun; sorunu düzelttikten sonra kurulumunuzun servis yöneticisiyle başlatın ve aynı isteği yeniden deneyin. Servisin çalışıyor görünmesi, doğru hedefe erişilebildiğini veya uygulamanın sağlıklı yanıt verdiğini tek başına göstermez.
Kaynak sınırı görülüyorsa: Sunucuda bellek, CPU ve disk doluluğunu; uygulamada ise uzun süren istekleri ve arka uç işçi havuzunu inceleyin. Apache'nin
Yalnız dinamik sayfalar başarısızsa uygulama ve PHP-FPM günlüklerinde aynı zamana ait hata arayın. Örneğin uygulamanın veritabanına erişememesi de isteğin tamamlanmasını engelleyebilir. Uygulama tarafından gösterilen bakım modu da kontrol edilmelidir; ancak görülen her 503'ü bakım moduna bağlamayın.
Apache yapılandırmasını değiştirdiyseniz önce eski dosyanın bir kopyasını alın, gerekli düzeltmeyi kaydedin ve yetkili bir kabukta sözdizimini sınayın:
Bu işlem mevcut istekleri hemen kesmeden Apache'yi yeniden yükler; bazı MPM sınırı değişiklikleri ise tamamen durdurup başlatmayı gerektirebilir. Böyle bir değişiklik planlıyorsanız kesinti olasılığını dikkate alın. Ardından daha önce hata veren adresi yeniden açın, yanıtı ve yeni günlük kayıtlarını kontrol edin. Tek bir başarılı istek geçici yoğunluk sorununun kalıcı olarak çözüldüğünü kanıtlamaz; hatanın görüldüğü koşullarda bir süre daha izleyin.
Paylaşımlı barındırmada servis veya sunucu günlüklerine erişiminiz yoksa sağlayıcıya hata veren adresi, zamanı ve saat dilimini, hatanın kapsamını ve varsa hassas bilgileri çıkarılmış hata kaydını gönderin. Apache ve ilgili arka uç günlüklerinin o zaman aralığında incelenmesini, uygulanan kaynak sınırı veya erişilemeyen servis varsa bildirilmesini isteyin. Günlüklerden parola, oturum bilgisi ve diğer hassas verileri paylaşmadan önce çıkarın.
Hatayı yeniden oluşturun ve günlüğü inceleyin
Hata veren adresi, zamanı ve saat dilimini not edin. Sorunun yalnız belirli bir sayfada mı, bütün sitede mi görüldüğünü ve yakın zamanda bakım veya yapılandırma değişikliği yapılıp yapılmadığını belirleyin. Sitenin önünde içerik dağıtım ağı veya başka bir vekil sunucu varsa 503 yanıtı bu katmandan da gelebilir; Apache günlüğünde eşleşen kayıt bulunmaması tek başına yeterli kanıt değildir.
SSH erişiminiz varsa Apache'nin ilgili sanal konağındaki veya genel yapılandırmasındaki
ErrorLog yönergesinden günlük konumunu bulun. Yol kurulumlara göre değişir. Aşağıdaki komutta örnek yolu kendi günlük yolunuzla değiştirin; hata oluşurken son kayıtları izleyin:
Kod:
sudo tail -f /var/log/apache2/error.log
Sayfayı tekrar açın ve aynı zamandaki hata kodunu ve mesajı inceleyin. İzlemeyi
Ctrl+C ile durdurabilirsiniz. Erişim günlüğü de isteğin Apache'ye ulaşıp ulaşmadığını ve kaydedilen yanıt kodunu karşılaştırmaya yardımcı olur. Kayıt yoksa doğru sanal konağın ve günlük dosyasının incelendiğini doğrulayın; ardından ön katmanların kayıtlarına bakın.Günlükteki bulguya göre sorunu giderin
Aşağıdaki ayrım, değişikliğe hangi noktadan başlayacağınızı belirlemenize yardımcı olur:
| Bulgu | İlk kontrol |
|---|---|
| Arka uç bağlantısı başarısız | Uygulama veya PHP-FPM servisi ve bağlantı adresi |
| İşçi sınırı veya yoğunluk uyarısı | Eşzamanlı yük, bellek ve yavaş istekler |
| Yalnız uygulama sayfaları etkileniyor | Uygulama günlüğü ve bağımlılıklar |
| Apache'de eşleşen istek kaydı yok | Doğru günlük ve ön katman kayıtları |
Kaynak sınırı görülüyorsa: Sunucuda bellek, CPU ve disk doluluğunu; uygulamada ise uzun süren istekleri ve arka uç işçi havuzunu inceleyin. Apache'nin
MaxRequestWorkers ayarı eşzamanlı işleme kapasitesini sınırlar; sınıra ulaşılması gelen bağlantıların normalde kuyruğa alınmasına yol açar, ancak her 503'ün nedeni bu sınır değildir. Değeri rastgele yükseltmek bellek yetersizliğini ağırlaştırabilir. Önce yavaş istek veya aşırı yükün nedenini giderin; ayar değişecekse etkin MPM'yi ve Apache dışındaki servislerin bellek ihtiyacını da hesaba katın.Yalnız dinamik sayfalar başarısızsa uygulama ve PHP-FPM günlüklerinde aynı zamana ait hata arayın. Örneğin uygulamanın veritabanına erişememesi de isteğin tamamlanmasını engelleyebilir. Uygulama tarafından gösterilen bakım modu da kontrol edilmelidir; ancak görülen her 503'ü bakım moduna bağlamayın.
Değişikliği uygulayın ve doğrulayın
Apache yapılandırmasını değiştirdiyseniz önce eski dosyanın bir kopyasını alın, gerekli düzeltmeyi kaydedin ve yetkili bir kabukta sözdizimini sınayın:
Kod:
sudo apachectl configtest
Syntax OK sonucu yalnızca yapılandırmanın sözdizimi denetiminden geçtiğini gösterir; arka uç bağlantısının veya sitenin çalıştığını kanıtlamaz. Hata verilirse belirtilen dosya ve satırı düzeltip testi tekrarlayın. Test başarılıysa yapılandırmayı uygulamak için şu komutu çalıştırın:
Kod:
sudo apachectl graceful
Bu işlem mevcut istekleri hemen kesmeden Apache'yi yeniden yükler; bazı MPM sınırı değişiklikleri ise tamamen durdurup başlatmayı gerektirebilir. Böyle bir değişiklik planlıyorsanız kesinti olasılığını dikkate alın. Ardından daha önce hata veren adresi yeniden açın, yanıtı ve yeni günlük kayıtlarını kontrol edin. Tek bir başarılı istek geçici yoğunluk sorununun kalıcı olarak çözüldüğünü kanıtlamaz; hatanın görüldüğü koşullarda bir süre daha izleyin.
Paylaşımlı barındırmada servis veya sunucu günlüklerine erişiminiz yoksa sağlayıcıya hata veren adresi, zamanı ve saat dilimini, hatanın kapsamını ve varsa hassas bilgileri çıkarılmış hata kaydını gönderin. Apache ve ilgili arka uç günlüklerinin o zaman aralığında incelenmesini, uygulanan kaynak sınırı veya erişilemeyen servis varsa bildirilmesini isteyin. Günlüklerden parola, oturum bilgisi ve diğer hassas verileri paylaşmadan önce çıkarın.