502 Bad Gateway hatası, bir web sunucusunun (genellikle Nginx/Apache) isteği işlemek için iletişim kurduğu “arka uç” sunucudan (upstream) geçerli bir yanıt alamaması durumunda oluşan bir HTTP 5xx hatasıdır. Bu hata çoğu zaman “site çöktü” gibi görünse de, aslında çoğunlukla sunucular arası iletişim, timeout, yanlış proxy ayarı, PHP-FPM/uygulama çökmesi veya kaynak yetersizliği gibi teknik nedenlerden kaynaklanır.
Bu yazıda 502 Bad Gateway hatasının sebeplerini ve WordPress, PHP-FPM, Nginx, Apache, Cloudflare, cPanel/Plesk gibi yaygın senaryolarda adım adım nasıl çözüleceğini detaylı şekilde anlatıyorum.
502 Bad Gateway Hatası Nedir?
502 Bad Gateway, istemci (tarayıcı) ile site arasında bir “gateway/proxy” görevi gören sunucunun, arka uç sunucudan geçersiz yanıt alması veya hiç yanıt alamaması durumunda dönen hata kodudur.
Örnek akış:
- Kullanıcı → Cloudflare (proxy) → Nginx (reverse proxy) → PHP-FPM / Uygulama Sunucusu
Bu zincirin herhangi bir yerinde arka uç cevap vermezse veya bozuk cevap dönerse, 502 hatası görülebilir.
502 Bad Gateway Hatasının En Yaygın Nedenleri
1) PHP-FPM Servisi Çökmüş veya Yanıt Vermiyor
WordPress/PHP tabanlı sitelerde en sık sebep budur. PHP-FPM durur, kilitlenir veya işlem havuzu dolar.
2) Upstream Timeout (Zaman Aşımı)
Nginx/Cloudflare/Apache arka uca bağlanır ama uygulama geç cevap verir. Proxy tarafında süre dolunca 502/504 görülebilir.
3) Yanlış Proxy/Upstream Ayarları
Nginx proxy_pass veya fastcgi_pass yanlış hedefe gidiyordur (socket/port hatalı, IP değişmiş vs.).
4) Kaynak Yetersizliği (CPU/RAM/IO)
Sunucuda RAM biter, CPU %100 olur, disk IO tıkanır. Uygulama cevap veremez, gateway 502 döner.
5) DNS / Cloudflare / CDN Kaynaklı Sorunlar
Cloudflare arka uca ulaşamazsa veya origin’de sorun varsa 502 görebilirsin. Bazı 502’ler Cloudflare tarafında özel kodlarla görünür.
6) Uygulama Hatası (WordPress Eklentisi, Tema, Kod)
Fatal error, bellek limitinin aşılması, ağır sorgular gibi durumlar PHP’yi düşürür veya yanıtı bozabilir.
Hatanın Nereden Kaynaklandığını Tespit Etme
İlk hedef: 502’yi kim döndürüyor?
- Tarayıcıda “nginx” yazıyorsa genelde Nginx kaynaklıdır.
- Cloudflare kullanıyorsan hata sayfasında Cloudflare logosu ve “Browser / Cloudflare / Host” gibi bölümler olur.
Hızlı test adımları
- CDN/Proxy kapat (varsa): Cloudflare kullanıyorsan geçici olarak “DNS only (gri bulut)” yapıp test et.
- Sunucuyu direkt IP ile test et: Host dosyası üzerinden domain’i origin IP’ye yönlendirip kontrol et.
- Loglara bak: En hızlı doğru teşhis, logdan gelir.
502 Bad Gateway Çözümü: Adım Adım
Aşağıdaki adımlar en yaygın senaryolara göre sıralıdır. Sunucu yönetimi yapabiliyorsan SSH ile ilerle; cPanel/Plesk kullanıyorsan panel üzerinden de benzer kontroller yapılır.
1) Nginx Loglarını Kontrol Et
Nginx kullanıyorsan önce hata logu:
- Genel hata logu (dağıtıma göre değişebilir):
/var/log/nginx/error.log
- Site bazlı log:
/var/log/nginx/<site>-error.log
Araman gereken tipik ifadeler:
connect() failed (111: Connection refused) while connecting to upstreamupstream timed out (110: Connection timed out)recv() failed (104: Connection reset by peer)
Bu satırlar 502’nin upstream bağlantısı ile ilgili olduğunu netleştirir:
- “Connection refused” → upstream servis kapalı/port dinlemiyor
- “timed out” → upstream çok yavaş/yoğun/timeout düşük
- “reset by peer” → upstream çökmüş ya da bağlantıyı kapatmış
2) PHP-FPM Çalışıyor Mu? Servis Kontrolü
WordPress/PHP sitelerde çözüm çoğu zaman PHP-FPM’i ayağa kaldırmaktır.
Kontrol:
- PHP-FPM servis adı sistemine göre değişebilir:
php-fpmphp8.1-fpm,php8.2-fpmvb.
Yapılacaklar:
- Servis durduysa yeniden başlat.
- Sürekli düşüyorsa RAM, pm ayarları, e-klenti hatası veya memory limit kaynaklı olabilir.
PHP-FPM havuz (pool) dolması
Yoğun trafikte pm.max_children düşükse PHP-FPM kuyruğu dolar, Nginx upstream’e erişemez ve 502 oluşabilir.
Genel öneri:
- RAM’e göre
pm.max_childrenayarlanmalı. pm = dynamicveyaondemandsenaryoya göre seçilmeli.request_terminate_timeoutvemax_execution_timedengelenmeli.
3) Nginx FastCGI/Socket Ayarlarını Doğrula
Nginx + PHP-FPM kullanıyorsan kritik nokta:
fastcgi_pass unix:/run/php/php8.x-fpm.sock;
veyafastcgi_pass 127.0.0.1:9000;
En sık hata:
- PHP sürümü yükseltildi ama Nginx hala eski socket’e bakıyor.
- Socket path değişti.
- PHP-FPM portu değişti.
Çözüm:
- Nginx site config’te
fastcgi_passhedefini doğru PHP-FPM socket/port ile eşleştir. - Ardından Nginx’i yeniden yükle (reload).
4) Apache Proxy Kullanıyorsan (Reverse Proxy) Ayarları Kontrol Et
Apache’nin ön tarafta olduğu bazı kurulumlarda (özellikle panel kurulumları, özel reverse proxy yapıları):
ProxyPass/ProxyPassReversemod_proxy_fcgiüzerinden PHP-FPM yönlendirmesi
Bu durumda:
- Proxy hedefi yanlışsa 502 çıkar.
- Apache logları:
/var/log/apache2/error.logveya/usr/local/apache/logs/error_log
Araman gerekenler:
AH01079: failed to make connection to backendproxy_fcgi:error
5) Cloudflare Kullanıyorsan: 502’nin Türünü Ayırt Et
Cloudflare’da 502 bazen origin’e erişilememesi veya origin’in bozuk yanıt dönmesiyle ilgilidir. Şunları kontrol et:
- Origin sunucu çalışıyor mu?
- Firewall Cloudflare IP’lerini engelliyor mu?
- Rate limit / WAF kuralı yanlış tetikleniyor mu?
Hızlı çözüm testi:
- Cloudflare’ı geçici kapat (DNS only) ve site düzeliyor mu bak.
- Düzeliyorsa problem büyük ihtimalle Cloudflare ↔ Origin hattında.
Ayrıca:
- SSL modu (Flexible/Full/Strict) yanlışsa bazen bağlantı problemleri zincirleme hatalara yol açabilir.
- Origin SSL sertifikası/portlar doğru mu kontrol et.
6) Sunucu Kaynaklarını Kontrol Et (CPU/RAM/Disk)
502 hatası bazen direkt olarak “sunucu boğuldu” demektir.
Kontrol listesi:
- RAM dolu mu? Swap’e mi düşmüş?
- CPU sürekli %100 mü?
- Disk dolu mu?
- IO wait yüksek mi?
Eğer disk dolarsa:
- PHP session yazamaz, log yazamaz, servisler saçmalar ve 502/503 patlayabilir.
Önlem:
- Log rotasyonu açık olmalı.
- Yedekleme dosyaları, cache klasörleri, eski loglar düzenli temizlenmeli.
7) WordPress Kaynaklı 502 Çözümleri
WordPress’te 502’nin en yaygın nedenleri:
- Bozuk eklenti/tema
- Yetersiz PHP memory limit
- Çok ağır sorgu / cache yokluğu
- Uzun süren işlemler (backup, import, tarama)
A) Eklentileri pasifleştirerek test
Panel açılmıyorsa:
wp-content/pluginsklasörünün adını değiştir (örnek:plugins_old)- Site düzelirse problem eklentilerdedir.
B) Temayı geçici değiştir
wp-content/themesiçinden aktif temayı değiştirip varsayılan temaya geç.
C) PHP Memory Limit artır
WordPress büyük eklentilerde memory_limit yetersiz kalabilir.
wp-config.phpiçine:define('WP_MEMORY_LIMIT', '256M');
(Barındırmaya göre etkisi sınırlı olabilir, asıl limit PHP tarafındadır.)
D) Cache kullan
Cache yoksa her istek PHP’ye biner:
- Sayfa cache (LiteSpeed Cache / WP Rocket vb.)
- Object cache (Redis/Memcached)
- OPcache aktif olmalı
8) Timeout Ayarlarını Dengele (502/504 İçin Kritik)
Eğer loglarda upstream timed out görüyorsan:
- Uygulama yavaş veya işlem uzun sürüyor.
- Proxy timeout düşük kalıyor.
Kontrol edilecek yerler:
- Nginx:
proxy_read_timeoutfastcgi_read_timeout
- PHP:
max_execution_time
- Cloudflare:
- Origin response time sınırları (plan ve türüne göre değişebilir)
Burada önemli olan sadece timeout artırmak değil:
- Yavaşlamanın nedenini çözmek (DB optimizasyonu, cache, eklenti temizliği, kaynak artırımı).
9) Veritabanı Sorunları 502’ye Sebep Olabilir
MySQL/MariaDB çöker veya çok yavaşlarsa PHP yanıt üretemez.
Kontrol:
- DB servis durumu
- Bağlantı sayısı (max connections)
- Slow query log
Çözüm:
- Slow query’leri optimize et
- Index ekle
- Cache (object cache) devreye al
10) SSL/TLS ve Güvenlik Duvarı Kontrolleri
Bazen 502, “arkaya erişemiyorum” demektir:
- UFW/CSF/iptables upstream portunu engelliyor olabilir
- Fail2ban kuralı ters çalışıp proxy’yi banlamış olabilir
- ModSecurity yanlış pozitif üretiyor olabilir
Cloudflare kullanıyorsan:
- Cloudflare IP aralıkları whitelist yapılmalı (özellikle sıkı firewall’larda)
502 Bad Gateway İçin Hızlı Çözüm Checklist’i
Aşağıdaki listeyi sırayla uygula:
- CDN/Cloudflare varsa geçici devre dışı bırakıp test et
- Nginx/Apache error log’u incele
- PHP-FPM çalışıyor mu kontrol et, gerekiyorsa yeniden başlat
- Nginx
fastcgi_pass/ proxy upstream doğru mu doğrula - Sunucu kaynaklarını kontrol et (RAM/CPU/Disk/IO)
- WordPress eklenti/tema kaynaklı mı izole et
- DB servis ve performansını kontrol et
- Timeout ayarlarını loglara göre düzenle
- Firewall/WAF engeli var mı kontrol et
502 Bad Gateway Hatasını Kalıcı Olarak Önleme
Kalıcı çözüm için sadece “servisi restart” etmek yetmez. Şunları yap:
- PHP-FPM havuz ayarlarını sunucu RAM’ine göre yapılandır
- OPcache aktif et
- WordPress’te sayfa cache + object cache kullan
- Düzenli log rotasyonu ve disk kontrolü kur
- Uptime/health check ile servis düşmelerini erken yakala
- Trafik artıyorsa ölçekle (CPU/RAM artır, ayrı DB sunucusu, CDN yapılandırması)
Sık Sorulan Sorular
502 ile 504 arasındaki fark nedir?
- 502: Gateway upstream’den geçersiz yanıt aldı.
- 504: Gateway upstream’den zamanında yanıt alamadı (timeout).
502 sadece belirli sayfalarda oluyorsa?
Genelde:
- O sayfa ağır çalışıyordur (sorgu/eklenti)
- Timeout veya bellek limitine takılıyordur
- Cache eksikliği vardır
502 aralıklı gelip gidiyorsa?
Bu çoğu zaman:
- Trafik dalgalanması
- PHP-FPM süreç havuzunun dolması
- RAM/CPU baskısı
- Arka uç servisin ara ara çökmesi
Sonuç
502 Bad Gateway hatası, çoğunlukla “proxy ile arka uç servis arasında kopukluk” problemidir. Doğru çözüm, hatayı kimin ürettiğini tespit edip (Nginx/Apache/Cloudflare) log üzerinden upstream bağlantısını incelemek ve ardından PHP-FPM, kaynak, timeout, yanlış yönlendirme veya uygulama hatası gibi kök sebebi gidermektir.







