Nginx “502 Bad Gateway” Hatası: Nedenleri, Çözümleri ve Adım Adım Rehber

Bu blog yazısında, Nginx sunucusuyla karşılaşılan "502 Bad Gateway" hatasının ne olduğunu, olası nedenlerini ve adım adım nasıl çözüleceğini detaylı bir şekilde inceledik.

BFS

Bir gün sabah saatlerinde, bir web sitesi yöneticisi olarak bilgisayarınızın başına oturdunuz ve tüm projelerinizin sorunsuz çalışmasını bekliyordunuz. Ancak, sabah ilk kontrolünüzde siteyi açmaya çalıştığınızda, karşınıza "502 Bad Gateway" hatası çıkıverdi. Bu, her web yöneticisinin korkulu rüyasıdır. Ama endişelenmeyin, çünkü bu yazıda bu hatanın ne olduğunu, neden meydana geldiğini ve nasıl çözüleceğini adım adım anlatacağız.

1. Nginx ve 502 Bad Gateway Hatası Nedir?

Öncelikle, Nginx'i ve 502 Bad Gateway hatasını kısaca açıklayalım. Nginx, web sunucusu olarak bilinen popüler ve hafif bir yazılımdır. Nginx, gelen HTTP isteklerini alır ve doğru servislere yönlendirir. Fakat bazen, doğru yönlendirmeyi yapmasına rağmen, arka planda bir şeyler ters gider ve sonuç olarak "502 Bad Gateway" hatası oluşur.

Peki, bu hatayı almamıza neden olan şey nedir? Aslında "Bad Gateway", bir sunucunun başka bir sunucudan beklediği cevabı alamadığı bir durumu ifade eder. Bu genellikle, Nginx'in, yönlendirmeye çalıştığı backend sunucusundan geçerli bir yanıt alamadığında meydana gelir. Backend sunucusu bir veritabanı olabilir, bir PHP uygulaması veya başka bir hizmet olabilir.

2. 502 Bad Gateway Hatasının Nedenleri

#### 2.1. Arka Uç Sunucusunun Çökmesi
En yaygın nedenlerden biri, Nginx'in arka uç sunucusundan geçerli bir yanıt alamamasıdır. Bu durumda, PHP-FPM (FastCGI Process Manager) gibi servisler çalışmıyor olabilir. Eğer web sunucunuz bu servislere erişemiyorsa, “502 Bad Gateway” hatasıyla karşılaşırsınız.

# 2.2. Yanıt Zaman Aşımı
Bazen Nginx, backend sunucusunun çok uzun sürede yanıt vermesini bekleyemez ve bu da hata ile sonuçlanır. Eğer veritabanı sorguları çok uzun sürüyorsa veya uygulama çok fazla kaynak kullanıyorsa, zaman aşımına uğrayabilirsiniz.

#### 2.3. Yanlış Yapılandırmalar
Nginx konfigürasyon dosyanızda yapılan küçük bir hata da bu soruna yol açabilir. Örneğin, PHP-FPM için yanlış bir socket yolu veya port numarası girmiş olabilirsiniz.

# 2.4. Sunucu Yetersizlikleri
Donanım sorunları veya aşırı trafik nedeniyle sunucunuzun kaynakları tükenmiş olabilir. Bu durumda, Nginx sunucusunun backend sunucusuna ulaşamaması ve "502 Bad Gateway" hatası göstermesi çok olasıdır.

### 3. 502 Bad Gateway Hatasını Çözmek İçin Adımlar

# 3.1. PHP-FPM Durumunu Kontrol Etme
Eğer PHP kullanıyorsanız, PHP-FPM'in çalışıp çalışmadığını kontrol etmek ilk adım olmalıdır. PHP-FPM çalışmıyorsa, bu durumda Nginx, backend sunucusundan geçerli bir yanıt alamayacaktır. PHP-FPM'i yeniden başlatmayı deneyin.


sudo systemctl restart php7.4-fpm


Bu komut, PHP-FPM servisini yeniden başlatır ve hatayı çözebilir.

# 3.2. Nginx ve PHP-FPM Yapılandırmalarını Gözden Geçirme
Yanlış yapılandırmalar da bu hataya yol açabilir. Nginx yapılandırma dosyasını (genellikle `/etc/nginx/nginx.conf`) ve PHP-FPM yapılandırma dosyasını (örneğin `/etc/php/7.4/fpm/pool.d/www.conf`) kontrol edin. Özellikle PHP-FPM için kullanılan socket yolunu doğru girdiğinizden emin olun.


fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;


# 3.3. Sunucu Kaynaklarını Kontrol Etme
Sunucunuzun kaynaklarının tükenip tükenmediğini kontrol etmek için `top` veya `htop` gibi araçları kullanabilirsiniz. Eğer sunucu kaynakları bitiyorsa, daha fazla bellek veya CPU gücü sağlamayı düşünebilirsiniz.


top


Bu komut ile sistemdeki kaynak kullanımını görebilirsiniz. Eğer bir işlem fazla kaynak kullanıyorsa, bunu durdurmayı düşünebilirsiniz.

# 3.4. Hata Günlüklerini İnceleme
Her web yöneticisinin unutmaması gereken bir diğer önemli adım ise, sunucu hata günlüklerini incelemektir. Nginx hata logları genellikle `/var/log/nginx/error.log` dosyasındadır.


tail -f /var/log/nginx/error.log


Bu loglar, hatanın kaynağını anlamanızı kolaylaştıracaktır.

# 3.5. Sunucu Yeniden Başlatma
Bazen basit bir yeniden başlatma işlemi tüm sorunları çözebilir. Hem Nginx hem de PHP-FPM'i yeniden başlatmak, cache'leri temizleyebilir ve sorunu çözebilir.


sudo systemctl restart nginx
sudo systemctl restart php7.4-fpm


4. Sonuç: Hata Çözümüne Giden Yol

502 Bad Gateway hatası, her web yöneticisinin karşılaşabileceği bir problemdir. Ancak doğru adımları takip ederek ve sisteminizi dikkatle kontrol ederek, bu hatayı hızlıca çözebilirsiniz. Yukarıda bahsettiğimiz adımları uygulayarak, Nginx ile ilgili 502 Bad Gateway hatasını çözmek, artık sizin için çok daha kolay olacak.

Unutmayın, her hata, size daha fazla şey öğrenme fırsatı sunar. Bu tür hatalarla karşılaştığınızda sakin olun, sorunun kaynağını belirleyin ve çözümü adım adım takip edin.

İlgili Yazılar

Benzer konularda diğer yazılarımız

ASP.NET Core ile Mobil Uygulama Geliştirme: Cross-Platform Web ve Mobil Uygulama Birleştirme

Günümüzde mobil uygulamalar hayatımızın ayrılmaz bir parçası haline geldi. Akıllı telefonlarımızda geçirdiğimiz zamanın büyük bir kısmını mobil uygulamalar sayesinde geçiriyoruz. Peki, bir mobil uygulama geliştirirken karşılaştığımız zorlukları nasıl...

ASP.NET Core 500 Internal Server Error: Sebepleri ve Çözümleri

Bir web geliştiricisi olarak, karşılaştığınız en zorlayıcı hatalardan biri şüphesiz "500 Internal Server Error"dır. Bu hata, web uygulamanızda her şeyin yolunda gittiğini düşündüğünüz bir anda karşınıza çıkabilir ve tüm projeyi durdurabilir. Ancak merak...

OAuth2 Authentication Error: Nedenleri ve Çözümleri

OAuth2 Authentication Error: Gerçekten Neyin Peşindeyiz?Her geliştirici, kimlik doğrulama hatalarıyla bir noktada karşılaşmıştır. Ama bazen işler kontrolden çıkabiliyor. Eğer bir gün OAuth2 ile çalışırken bir kimlik doğrulama hatası aldığınızda, yalnız...