LiteSpeed 503 Hatası
Bu makalede, DirectAdmin, CloudLinux ve LiteSpeed web sunucusu kurulu bir ortamda karşılaşılan yaygın bir sorun olan 503 Service Unavailable hatasını ve bu hatanın çözümünde suexec_limit
ayarının önemini ele alacağız. Yaşadığımız örnek olay üzerinden, adım adım sorunun kaynağını nasıl tespit ettiğimizi ve doğru suexec_limit
değerini nasıl belirlediğimizi inceleyeceğiz.
Sorunun Tanımı:
Belirli bir web sitesi (ortakzihin.com) 503 hatası verirken, sunucudaki diğer bazı siteler sorunsuz çalışıyordu. LiteSpeed hata loglarında aşağıdaki mesajlar tekrar ediyordu:
connection to [uds://usr/local/lsws/extapp-sock/APVH_ortak_Suphp.sock] on request #0, confirmed, 0, associated process: 0, running: 0, error: Connection refused!
No such file or directory!
Max retries has been reached, 503!
Bu mesajlar, LiteSpeed’in PHP process’leriyle iletişim kurmak için kullandığı soket dosyasına (APVH_ortak_Suphp.sock
) bağlanamadığını ve bu nedenle PHP process’inin başlatılamadığını gösteriyordu.
Sorunun Kaynağını Araştırma:
Sorunun kaynağını bulmak için aşağıdaki adımları izledik:
- LiteSpeed ve PHP Hata Loglarını İnceleme: LiteSpeed’in
stderr.log
dosyası ve PHP hata logları incelenerek sorunun kaynağı hakkında ipuçları arandı. - CloudLinux Kaynak Limitlerini Kontrol Etme: DirectAdmin’deki CloudLinux LVE Manager aracılığıyla ilgili kullanıcı için CPU, bellek ve giriş process (Entry Processes) limitleri kontrol edildi ve limitsiz olarak ayarlandı.
- PHP Sürümünü ve Ayarlarını Doğrulama: Doğru PHP sürümünün kullanıldığı ve
php.ini
dosyasındaki ayarların (örneğin,memory_limit
,max_execution_time
) uygun olduğu teyit edildi. - LiteSpeed Önbelleğini Temizleme: Önbellek dosyalarından kaynaklanabilecek olası sorunları elemek için LiteSpeed önbelleği temizlendi.
- Soket Dosyasının Varlığını ve İzinlerini Kontrol Etme:
/usr/local/lsws/extapp-sock/
dizinindeAPVH_ortak_Suphp.sock
dosyasının var olup olmadığı ve doğru izinlere sahip olup olmadığı kontrol edildi. - LiteSpeed’i Yeniden Başlatma: LiteSpeed servisi yeniden başlatılarak soket dosyasının yeniden oluşturulması sağlandı.
Bu adımlar sorunu çözmeyince, suEXEC
veya suPHP
yapılandırmasından şüphelenmeye başladık.
suexec_limit
Ayarının Önemi:
LiteSpeed WebAdmin Console’a (genellikle https://sunucu_ip_adresi:7080
) giriş yaparak “Configuration” > “Server” > “Using Apache Configuration File” bölümüne ulaştık. Burada, suexec_limit
ayarının 10 olduğunu gördük.
suexec_limit
ayarı, aynı anda çalışabilecek maksimum suEXEC
process sayısını belirler. suEXEC
, PHP scriptlerinin web sunucusu kullanıcısı yerine, o scriptin sahibi olan kullanıcının izinleriyle çalıştırılmasını sağlayarak güvenliği artıran bir mekanizmadır.
Düşük suexec_limit
değeri, yoğun trafikli sitelerde veya çok sayıda PHP scripti çalıştıran sitelerde yetersiz kalabilir ve 503 hatalarına yol açabilir.
Çözüm:
suexec_limit
değerini 10’dan 1000’e yükselttik. Bu değişiklik, aynı anda 1000’e kadar PHP scriptinin suEXEC
ile çalıştırılmasına izin verdi ve ortakzihin.com
sitesindeki 503 hatası çözüldü.
Doğru suexec_limit
Değerini Belirleme:
Bu değeri belirlerken sunucu kaynakları (CPU, RAM) ve barındırılan sitelerin trafik yoğunluğu göz önünde bulundurulmalıdır.
- Çok Düşük Olursa: 503 hatalarına ve performans sorunlarına neden olur.
- Çok Yüksek Olursa: Sunucu kaynaklarının aşırı yüklenmesine ve kararsızlığa yol açabilir.
İdeal değeri bulmak için:
- Sunucu Kaynaklarını Dikkate Alın:
top
,htop
gibi komutlarla CPU ve bellek kullanımını izleyin. - Trafik Yoğunluğunu Göz Önünde Bulundurun: Yoğun trafikli siteler daha yüksek bir limit gerektirir.
- Kademeli Olarak Artırın ve İzleyin: Değeri kademeli olarak artırarak (örneğin, 500, 750, 1000, 1500 şeklinde) sunucu performansını ve
suEXEC
process’lerinin sayısını izleyin. - LiteSpeed Önbelleğini (LSCache) Kullanın: LSCache, PHP scriptlerinin her seferinde yeniden çalıştırılma ihtiyacını azaltarak
suEXEC
process’lerine olan yükü hafifletir ve performansı önemli ölçüde artırır.
Örnek Olay İçin Sonuç:
128 GB RAM, 2 TB HDD ve 18 çekirdekli işlemciye sahip sunucumuzda, 300’den fazla site barındırılacağı için suexec_limit
değerini başlangıç olarak 3000-4000 aralığında ayarladık. Bu değeri, sunucu performansını ve suEXEC
process’lerinin sayısını izleyerek gerektiğinde ayarlayacağız.
Sonuç:
suexec_limit
ayarı, LiteSpeed sunucularda performans ve güvenlik açısından kritik bir öneme sahiptir. Doğru değeri belirlemek, sunucu kaynaklarını verimli kullanmak ve 503 hatalarını önlemek için gereklidir. Bu makalede ele aldığımız örnek olay, bu ayarın önemini ve doğru değerin nasıl bulunabileceğini göstermektedir.
Ek Öneriler:
- Güvenlik:
suEXEC
kullanmak, güvenlik açısından önemlidir. Mümkünse,lsphp
moduna geçmek yerinesuEXEC
ile devam edin ve sorunusuexec_limit
ayarını optimize ederek çözmeye çalışın. - Kod Optimizasyonu: Optimize edilmemiş PHP kodları, gereksiz yere fazla kaynak tüketebilir. Kodunuzu optimize etmek, sunucu performansını iyileştirmenin en etkili yollarından biridir.
Umarım bu makale, LiteSpeed sunucularda 503 hatasının çözümü ve suexec_limit
ayarının önemi hakkında faydalı bilgiler sağlamıştır.