502 Bad Gateway Hatası Nedir?
"502 Bad Gateway", Nginx gibi proxy sunucularının, kendilerine gelen istekleri doğru bir şekilde iletememesi durumunda karşımıza çıkan bir hatadır. Bu hata genellikle, Nginx sunucusunun arka planda başka bir sunucuya (örneğin, bir PHP-FPM, bir uygulama sunucusu ya da veritabanı sunucusu) bağlanmaya çalışırken başarılı olamaması durumunda meydana gelir. İstemci (yani siz) ile sunucu arasındaki iletişimin bozulduğu bir senaryo ortaya çıkar.
Peki, bu hata nerelerden kaynaklanabilir? Gelin, nedenleri ve çözüm yollarını keşfedelim.
502 Bad Gateway Hatasının Nedenleri
1. PHP-FPM ya da Diğer Arka Uç Servislerinde Bir Sorun
Çoğu zaman, Nginx’in PHP-FPM gibi uygulama sunucuları ile iletişimi kopması bu hatanın başlıca nedenidir. PHP-FPM, PHP kodlarını çalıştıran bir arka uç sunucusudur ve Nginx, web isteğini PHP-FPM'e yönlendirir. Eğer PHP-FPM düzgün çalışmıyorsa, 502 hatası alırsınız.
2. Sunucu Kaynaklarının Tükenmesi
Web sitenizin sunucusu yoğun trafik veya hatalı konfigürasyonlar nedeniyle kaynaklarını tükenmiş olabilir. CPU ya da bellek kapasitesinin tükenmesi, Nginx’in diğer sunucularla iletişim kurmasını engelleyebilir.
3. Yanıt Süresi ve Timeout Sorunları
Birçok durum, Nginx ile arka uç sunucusu arasındaki iletişimde zaman aşımına uğrama (timeout) sorunları nedeniyle 502 hatası verebilir. Sunucu yanıt vermezse veya çok uzun sürerse, Nginx isteği sonlandırır.
4. Yanlış Yapılandırmalar
Nginx’in yapılandırma dosyasında yapılan yanlış ayarlar, hataya neden olabilir. Özellikle proxy ayarlarında yapılan değişiklikler, sunucunun doğru yanıt vermemesine yol açabilir.
502 Bad Gateway Hatasını Çözmek İçin Adım Adım Rehber
Adım 1: Nginx ve Arka Uç Sunucusunun Durumunu Kontrol Edin
İlk olarak Nginx’in çalıştığından emin olun. Bunun için terminalde şu komutu çalıştırabilirsiniz:
sudo systemctl status nginxEğer Nginx çalışıyorsa, PHP-FPM veya diğer arka uç servislerinin durumunu kontrol edin:
sudo systemctl status php-fpmEğer PHP-FPM çalışmıyorsa, yeniden başlatmayı deneyin:
sudo systemctl restart php-fpmAdım 2: Sunucu Kaynaklarını Kontrol Edin
Sunucunuzun kaynakları tükenmiş olabilir. Bu durumu tespit etmek için şu komutları kullanarak CPU ve bellek kullanımını kontrol edebilirsiniz:
topYa da daha spesifik bir şekilde:
free -hEğer kaynaklar tükeniyorsa, sunucunuza daha fazla kaynak eklemeyi veya yoğun trafiği azaltmayı düşünebilirsiniz.
Adım 3: Timeout Ayarlarını Gözden Geçirin
Nginx ve PHP-FPM arasında zaman aşımına (timeout) neden olan bir ayar olabilir. Nginx yapılandırma dosyanızı açarak (genellikle `/etc/nginx/nginx.conf`) şu satırları gözden geçirin:
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_send_timeout 300;Bu değerleri artırarak, Nginx’in zaman aşımını daha uzun tutmasını sağlayabilirsiniz.
Adım 4: Yapılandırma Dosyasını Gözden Geçirin
Yanlış yapılandırmalar 502 hatasına neden olabilir. Nginx ve PHP-FPM yapılandırma dosyalarını dikkatle inceleyin. Aşağıdaki komut ile Nginx yapılandırma dosyasını kontrol edebilirsiniz:
sudo nginx -tEğer herhangi bir hata veya yanlışlık varsa, bunu düzeltin ve Nginx’i yeniden başlatın:
sudo systemctl restart nginxAdım 5: Logları İnceleyin
Eğer çözüm bulamadıysanız, log dosyalarını incelemek faydalı olabilir. Nginx hata loglarını şu komutla görüntüleyebilirsiniz:
sudo tail -f /var/log/nginx/error.logPHP-FPM loglarını da kontrol ederek daha fazla bilgi edinebilirsiniz.
Sonuç
502 Bad Gateway hatası, web yöneticileri için sinir bozucu bir durum olabilir. Ancak, doğru adımları izlediğinizde bu hatayı çözmek çok da zor değildir. Nginx ile arka uç sunucular arasında iletişimi doğru kurarak, yapılandırma hatalarını ortadan kaldırarak ve sunucunuzun kaynaklarını düzgün yöneterek bu sorunu çözebilirsiniz.
Unutmayın, her zaman log dosyalarını kontrol etmek ve yapılandırma dosyalarını dikkatle incelemek en iyi çözümlerden biridir. Eğer bu rehberin ardından sorun hala devam ediyorsa, sunucu sağlayıcınızla iletişime geçmeyi unutmayın.