502 Bad Gateway Hatası Nedir? Nasıl Çözülür?

Bir web sitesini ziyaret ettiğinizde karşınıza çıkan 502 Bad Gateway hatası, sunucular arasındaki iletişimde bir problem yaşandığını gösterir. Sayfayı yenilediğinizde bazen düzelebilen bu hata, devamlı tekrarlandığında web sitesinin ziyaretçiler tarafından görüntülenmesini engelleyebilir.

502 hatası genellikle web sunucusunun, isteği ilettiği başka bir sunucudan geçerli bir yanıt alamaması sonucunda ortaya çıkar. Bu durum Nginx veya Apache yapılandırmasından, PHP-FPM servisinden, aşırı sunucu yükünden ya da Cloudflare gibi proxy hizmetlerinden kaynaklanabilir.

Bu rehberde 502 Bad Gateway hatasının ne anlama geldiğini, neden oluştuğunu ve farklı sunucu altyapılarında nasıl çözülebileceğini adım adım ele alacağız.

502 Bad Gateway Hatası Nedir?

502 Bad Gateway, bir sunucunun ağ geçidi (gateway) veya proxy görevi üstlenirken arka uç sunucudan (upstream server) geçerli bir yanıt alamadığını belirten HTTP durum kodudur.

Örneğin bir ziyaretçi web sitenizi açmak istediğinde istek doğrudan uygulamaya ulaşmayabilir. Önce Nginx veya Apache gibi bir web sunucusuna, ardından PHP-FPM ya da başka bir uygulama sunucusuna iletilebilir. Bu iletişim zincirinin herhangi bir noktasında geçersiz veya beklenmeyen bir yanıt alınması 502 hatasına neden olabilir.

Bu hata yalnızca WordPress sitelerinde görülmez. PHP uygulamalarında, e-ticaret sitelerinde, API servislerinde, VPS ve VDS sunucularda da karşılaşılabilir.

502 Bad Gateway Hatası Nasıl Görünür?

Sunucu yapılandırmasına ve kullanılan hizmete bağlı olarak hata farklı biçimlerde görüntülenebilir:

  • 502 Bad Gateway
  • HTTP Error 502
  • 502 Proxy Error
  • Bad Gateway: The proxy server received an invalid response
  • 502 Bad Gateway - Nginx
  • Web server received an invalid response while acting as a gateway or proxy

Hata mesajının görünümü değişse de temel problem genellikle sunucular arasındaki iletişimle ilgilidir.

502 Bad Gateway Hatası Neden Olur?

502 hatasının tek bir nedeni yoktur. Sorunun kaynağını bulmak için web sunucusu, uygulama servisi ve varsa proxy altyapısı birlikte incelenmelidir.

1. Arka Uç Sunucunun Yanıt Vermemesi

Nginx veya Apache, gelen isteği başka bir sunucuya ya da uygulama servisine iletiyor olabilir. Ancak hedef servis çalışmıyorsa veya bağlantı kabul etmiyorsa ağ geçidi geçerli bir yanıt alamaz.

Örneğin PHP-FPM servisi durmuşsa Nginx, PHP dosyalarını çalıştıracak uygulama servisine ulaşamayabilir. Benzer durum Node.js, Python veya başka bir uygulama sunucusunda da yaşanabilir.

2. PHP-FPM Servisinin Durması

PHP tabanlı web sitelerinde PHP-FPM, PHP kodlarının çalıştırılmasını sağlayan servislerden biridir. Servisin beklenmedik şekilde durması, hatalı yapılandırılması veya istekleri işleyememesi 502 hatasına yol açabilir.

Özellikle yoğun trafik alan WordPress ve WooCommerce sitelerinde PHP-FPM işlem kapasitesinin yetersiz kalması ya da çalışan süreçlerin tükenmesi sorun oluşturabilir.

3. Sunucu Kaynaklarının Yetersiz Kalması

Sunucunun işlemci (CPU), RAM veya disk kaynaklarının aşırı kullanılması uygulamaların yanıt verememesine neden olabilir.

Bu durum aşağıdaki senaryolarda daha sık görülebilir:

  • Web sitesine kısa sürede çok sayıda ziyaretçi gelmesi.
  • Yoğun veritabanı sorguları çalıştırılması.
  • Yüksek kaynak tüketen eklenti veya uygulamaların kullanılması.
  • Sunucuda aynı anda çok fazla PHP işleminin çalışması.
  • RAM veya işlemci kapasitesinin uygulamanın ihtiyaçlarını karşılayamaması.

4. Nginx ve Apache Arasındaki İletişim Problemleri

Bazı sunucu altyapılarında Nginx, gelen istekleri Apache sunucusuna ileten bir ters proxy (reverse proxy) olarak çalışır.

Bu yapıda Apache servisi durmuşsa, yanlış port üzerinden dinleme yapıyorsa veya gelen istekleri işleyemiyorsa Nginx 502 Bad Gateway hatası gösterebilir.

Özellikle cPanel ve benzeri kontrol panelleriyle yönetilen sunucularda Nginx ve Apache arasındaki bağlantının doğru yapılandırılması önemlidir.

5. Yanlış Proxy veya Port Yapılandırması

Uygulamanın çalıştığı port ile Nginx veya Apache yapılandırmasında belirtilen port farklıysa bağlantı kurulamayabilir.

Örneğin Node.js uygulamanız 3000 portunda çalışırken Nginx yapılandırmasında 8080 portuna yönlendirme yapılmışsa istek doğru uygulamaya ulaşamaz.

Benzer şekilde yanlış IP adresi, hatalı upstream tanımı veya uygulamanın yalnızca farklı bir ağ arayüzünü dinlemesi de 502 hatasına neden olabilir.

6. Cloudflare Kaynaklı Problemler

Cloudflare gibi CDN ve proxy hizmetleri, ziyaretçiler ile web sitenizin barındırıldığı sunucu arasında aracılık yapar. Bu nedenle 502 hatası Cloudflare üzerinden görüntülendiğinde sorunun kaynağı her zaman Cloudflare olmak zorunda değildir.

Hata, doğrudan web sitenizin bulunduğu sunucudan kaynaklanabileceği gibi Cloudflare ile origin sunucu arasındaki iletişimden de kaynaklanabilir.

Bu ayrımı yapabilmek için hata sayfasının görünümünü, sunucu kayıtlarını ve Cloudflare panelindeki hata bilgilerini incelemek gerekir.

502 Bad Gateway Hatası Nasıl Çözülür?

502 hatasını çözmek için öncelikle problemin hangi katmanda meydana geldiğini belirlemek gerekir. Aşağıdaki adımları sırasıyla uygulayarak sorunun kaynağını tespit edebilirsiniz.

1. Web Sitesini Yeniden Kontrol Edin

Öncelikle web sitesini farklı bir tarayıcıdan veya internet bağlantısından kontrol edin. Geçici bir ağ problemi ya da kısa süreli sunucu kesintisi söz konusu olabilir.

Tarayıcı önbelleğini temizlemek veya gizli sekmeden siteyi açmak da istemci tarafındaki olası sorunları elemenize yardımcı olur.

Ancak hata farklı cihazlarda ve bağlantılarda da devam ediyorsa sunucu tarafını incelemelisiniz.

2. Sunucu Servislerinin Çalıştığını Kontrol Edin

VPS veya VDS sunucunuz varsa SSH üzerinden bağlanarak ilgili servislerin durumunu kontrol edebilirsiniz.

Nginx kullanıyorsanız:

sudo systemctl status nginx

Apache kullanıyorsanız Ubuntu ve Debian tabanlı sistemlerde:

sudo systemctl status apache2

AlmaLinux, Rocky Linux ve benzeri sistemlerde Apache servisi genellikle httpd adıyla çalışır:

sudo systemctl status httpd

PHP-FPM servisini kontrol etmek için PHP sürümünüze uygun servis adını kullanın. Örneğin:

sudo systemctl status php8.3-fpm

Buradaki PHP sürümü örnektir. Sunucunuzda farklı bir sürüm kurulu olabilir.

Servis durmuşsa önce hata kayıtlarını inceleyin. Sorunun nedenini belirledikten sonra gerekli müdahaleyi yapabilirsiniz.

3. Gerekirse Servisleri Yeniden Başlatın

Servis beklenmedik şekilde durmuşsa veya geçici bir problem yaşıyorsa yeniden başlatılması sorunu giderebilir.

Nginx servisini yeniden başlatmak için:

sudo systemctl restart nginx

Apache servisini yeniden başlatmak için Ubuntu ve Debian sistemlerde:

sudo systemctl restart apache2

Diğer bazı Linux dağıtımlarında:

sudo systemctl restart httpd

PHP-FPM servisini yeniden başlatmak için:

sudo systemctl restart php8.3-fpm

Önemli: Servisleri yeniden başlatmak geçici olarak erişimi düzeltebilir ancak sorunun temel nedenini ortadan kaldırmayabilir. Özellikle yoğun kaynak tüketimi veya hatalı yapılandırma devam ediyorsa 502 hatası tekrar ortaya çıkabilir.

4. Nginx Hata Kayıtlarını İnceleyin

Nginx kullanan sunucularda 502 hatasının nedenini bulmak için error log dosyasını incelemek oldukça önemlidir.

Ubuntu ve Debian tabanlı sistemlerde yaygın olarak kullanılan komut:

sudo tail -n 100 /var/log/nginx/error.log

Canlı olarak yeni hata kayıtlarını takip etmek için:

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

Burada aşağıdaki gibi mesajlarla karşılaşabilirsiniz:

connect() failed (111: Connection refused) while connecting to upstream

Bu mesaj, Nginx'in yönlendirme yaptığı arka uç servise bağlantı kuramadığını gösterir. Uygulamanın çalışıp çalışmadığını, doğru portu dinleyip dinlemediğini ve proxy yapılandırmasını kontrol etmelisiniz.

Bir diğer örnek:

upstream prematurely closed connection while reading response header from upstream

Bu kayıt, arka uç sunucunun yanıt başlığını tamamlamadan bağlantıyı kapattığını gösterir. Uygulama hataları, servis çökmesi veya kaynak yetersizliği gibi nedenleri inceleyebilirsiniz.

Log dosyasının konumu kurulum yöntemine ve sunucu dağıtımına göre değişebilir. Nginx yapılandırmasındaki error_log direktifi de kontrol edilmelidir.

5. PHP-FPM Hata Kayıtlarını Kontrol Edin

Web siteniz PHP ile çalışıyorsa PHP-FPM kayıtları, sorunun uygulama katmanında olup olmadığını anlamanıza yardımcı olabilir.

Örnek bir log kontrol komutu:

sudo journalctl -u php8.3-fpm -n 100 --no-pager

Servis adını kendi PHP sürümünüze göre değiştirmelisiniz.

PHP-FPM kayıtlarında aşağıdaki türden sorunları arayın:

  • PHP-FPM servisinin beklenmedik şekilde kapanması.
  • Çalışan işlem sayısının sınırına ulaşılması.
  • Uygulama hataları nedeniyle süreçlerin sonlanması.
  • RAM veya diğer sistem kaynaklarının yetersiz kalması.
  • Yanlış PHP-FPM havuz (pool) yapılandırması.

6. Sunucu Kaynaklarını Kontrol Edin

502 hatası yoğun trafik veya kaynak yetersizliği nedeniyle oluşuyorsa sunucunun mevcut durumunu incelemelisiniz.

CPU ve RAM kullanımını kontrol etmek için:

htop

Alternatif olarak:

top

RAM kullanımını daha ayrıntılı görmek için:

free -h

Disk alanını kontrol etmek için:

df -h

Özellikle RAM kullanımının sürekli yüksek olması, PHP-FPM veya diğer uygulama servislerinin kararsız çalışmasına neden olabilir.

Disk alanının tamamen dolması da log yazma, geçici dosya oluşturma ve uygulama işlemlerinde sorunlara yol açabilir.

Kaynakların düzenli olarak sınırlarına ulaştığını görüyorsanız uygulama optimizasyonu yapmalı veya sunucunun kapasitesini yeniden değerlendirmelisiniz.

7. Nginx Proxy ve Port Ayarlarını Kontrol Edin

Nginx üzerinden başka bir uygulamaya yönlendirme yapıyorsanız proxy_pass ayarının doğru hedefi gösterdiğinden emin olun.

Örneğin 3000 portunda çalışan bir uygulamaya yönlendirme yapan basit bir yapılandırma şu şekilde olabilir:

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Buradaki 3000 portu örnektir. Uygulamanızın gerçekten hangi portta çalıştığını kontrol etmelisiniz.

Yapılandırma dosyasında değişiklik yaptıktan sonra Nginx ayarlarını test edin:

sudo nginx -t

Test başarılıysa yapılandırmayı yeniden yükleyebilirsiniz:

sudo systemctl reload nginx

Yapılandırmayı kontrol etmeden doğrudan değiştirmek, mevcut web sitesi erişimini de bozabilir. Bu nedenle işlem öncesinde ilgili dosyanın yedeğini almanız önerilir.

8. Cloudflare Üzerinden Kontrol Sağlayın

Web siteniz Cloudflare kullanıyorsa hatanın hangi taraftan kaynaklandığını belirlemek için Cloudflare panelindeki olayları ve hata bilgilerini inceleyin.

Şu kontrolleri yapabilirsiniz:

  • Origin sunucunun çalışır durumda olduğunu doğrulayın.
  • Cloudflare ile origin sunucu arasındaki bağlantıyı kontrol edin.
  • Sunucu güvenlik duvarının Cloudflare IP adreslerini engellemediğinden emin olun.
  • Sunucunun ilgili alan adı için doğru yanıt verdiğini kontrol edin.
  • Hata zamanını ve varsa Ray ID bilgisini kaydedin.

Cloudflare markalı bir 502 hata sayfası görmeniz, hatanın origin sunucudan dönmüş olabileceğine işaret edebilir. Markasız bir hata sayfasında ise Cloudflare ile origin arasındaki iletişim veya başka bir proxy problemi araştırılmalıdır.

Cloudflare'ı devre dışı bırakmak her durumda doğru çözüm değildir. Öncelikle problemin kaynağını belirlemeli ve gerekli düzeltmeyi yapmalısınız.

9. WordPress Eklentilerini ve Temayı Kontrol Edin

502 hatası yalnızca belirli WordPress sayfalarında veya bir işlem sırasında ortaya çıkıyorsa uygulama tarafında sorun bulunabilir.

Özellikle yoğun işlem yapan eklentiler, hatalı kodlar veya PHP süreçlerinin beklenmedik şekilde sonlanması soruna neden olabilir.

WordPress yönetim paneline erişebiliyorsanız son yüklenen veya güncellenen eklentileri kontrol edin. Sorunun başladığı zamana denk gelen değişiklikleri değerlendirin.

Yönetim paneline erişemiyorsanız dosya yöneticisi veya FTP üzerinden eklentileri geçici olarak devre dışı bırakabilirsiniz. Ancak bu işlem öncesinde yedek alın ve özellikle e-ticaret sitelerinde dikkatli hareket edin.

WordPress sitelerinde sunucu kaynaklı ve uygulama kaynaklı sorunları birbirinden ayırmak için PHP hata kayıtlarını da incelemek gerekir.

WordPress altyapısına ilişkin diğer sorun giderme adımları için 500 Internal Server Error hatası rehberimizi de inceleyebilirsiniz.

502 Bad Gateway Hatası ile 500 ve 504 Hataları Arasındaki Fark Nedir?

Bu üç hata da sunucu tarafındaki problemlerle ilişkilidir. Ancak ortaya çıktıkları durumlar birbirinden farklıdır.

Hata Kodu Anlamı Temel Problem 500 Internal Server Error Sunucu isteği işlerken beklenmeyen bir hata oluştu. Uygulama veya sunucu tarafında genel hata. 502 Bad Gateway Gateway veya proxy, arka uç sunucudan geçerli yanıt alamadı. Sunucular arasındaki iletişim veya geçersiz yanıt. 504 Gateway Timeout Gateway veya proxy, arka uç sunucudan zamanında yanıt alamadı. Yanıtın zamanında gelmemesi. Örneğin Nginx'in PHP-FPM servisine bağlanamaması 502 hatasına neden olabilir. Arka uç sunucunun yanıtının belirlenen süre içinde gelmemesi ise 504 hatası olarak görülebilir.

Bu nedenle hata kodunu doğru belirlemek, çözüm sürecini hızlandırır.

502 Bad Gateway Hatası Nasıl Önlenir?

502 hatasının tekrar yaşanmaması için yalnızca sorun ortaya çıktığında müdahale etmek yeterli değildir. Sunucu altyapısının düzenli olarak izlenmesi ve uygulamaların ihtiyaçlarına uygun yapılandırılması gerekir.

  • Sunucu kaynaklarını takip edin: CPU, RAM ve disk kullanımını düzenli olarak kontrol edin.
  • Servisleri izleyin: Nginx, Apache, PHP-FPM ve uygulama servislerinin durumunu takip edin.
  • Log kayıtlarını inceleyin: Tekrarlayan bağlantı ve uygulama hatalarını erken tespit edin.
  • Yapılandırma değişikliklerini test edin: Nginx ve Apache ayarlarını uygulamadan önce kontrol edin.
  • Uygulamaları güncel tutun: PHP, WordPress, eklenti ve diğer yazılımların uyumlu sürümlerini kullanın.
  • Yeterli sunucu kapasitesi sağlayın: Web sitenizin trafik ve işlem yoğunluğuna uygun kaynaklar tercih edin.
  • Yedek alın: Sunucu ve uygulama yapılandırmalarında değişiklik yapmadan önce geri dönüş imkânı oluşturun.

Özellikle yüksek trafik alan web sitelerinde kaynak kapasitesinin doğru belirlenmesi, servislerin kararlı çalışması açısından önemlidir.

502 Bad Gateway Hatası İçin Hosting veya VDS Desteği Ne Zaman Alınmalı?

502 hatası sürekli tekrarlanıyorsa ve sunucu kayıtlarında bağlantı reddedilmesi, servis çökmesi veya kaynak yetersizliği gibi belirtiler görülüyorsa profesyonel destek almak gerekebilir.

Paylaşımlı hosting hizmetlerinde sunucu servislerine doğrudan müdahale etme yetkiniz bulunmayabilir. Bu durumda hosting sağlayıcınızla iletişime geçerek hata zamanını, etkilenen sayfayı ve varsa hata kayıtlarını paylaşmalısınız.

Sunucu yapılandırmasını kendiniz yönetmek, uygulama servisleri üzerinde daha fazla kontrol sahibi olmak ve kaynakları ihtiyacınıza göre belirlemek istiyorsanız TuemCloud VPS sunucu çözümlerini inceleyebilirsiniz.

WordPress siteleri için ise altyapıya uygun kaynaklar ve yönetim kolaylığı sunan WordPress hosting hizmetleri değerlendirilebilir.

Sıkça Sorulan Sorular

502 Bad Gateway hatası neden olur?

Genellikle proxy veya ağ geçidi görevi gören sunucunun arka uç sunucudan geçerli yanıt alamaması nedeniyle oluşur. Nginx, Apache, PHP-FPM, uygulama servisleri veya sunucu kaynakları sorunun kaynağı olabilir.

502 Bad Gateway hatası nasıl düzeltilir?

Öncelikle web sunucusu ve uygulama servislerinin çalışıp çalışmadığını kontrol edin. Ardından Nginx veya Apache hata kayıtlarını inceleyin, PHP-FPM durumunu kontrol edin ve sunucu kaynaklarını değerlendirin.

502 hatası kullanıcıdan mı yoksa sunucudan mı kaynaklanır?

502 hatası çoğunlukla sunucu tarafında meydana gelir. Ancak bazı durumlarda kullanıcının VPN, proxy veya ağ yapılandırması da bağlantıyı etkileyebilir. Farklı cihaz ve bağlantılardan test yapmak sorunun kaynağını ayırt etmeye yardımcı olur.

Cloudflare 502 Bad Gateway hatası neden verir?

Cloudflare, origin sunucudan geçerli yanıt alamadığında 502 hatası gösterebilir. Origin sunucunun yanıt vermemesi, aşırı yük, bağlantı problemleri veya proxy iletişimindeki sorunlar bu duruma neden olabilir.

502 Bad Gateway hatası geçici midir?

Bazı durumlarda servislerin kısa süreli kesintiye uğraması veya geçici ağ problemleri nedeniyle oluşabilir. Ancak hata sürekli tekrarlanıyorsa sunucu kayıtlarının incelenmesi ve temel sorunun giderilmesi gerekir.

502 ve 504 hataları arasındaki fark nedir?

502 hatası, gateway veya proxy sunucusunun arka uç sunucudan geçerli bir yanıt alamadığını belirtir. 504 hatası ise arka uç sunucudan belirlenen süre içerisinde yanıt alınamadığını ifade eder.

WordPress sitelerinde 502 hatası neden oluşur?

PHP-FPM servisinin çalışmaması, sunucu kaynaklarının yetersiz kalması, hatalı eklentiler, uygulama hataları veya Nginx ve Apache arasındaki iletişim problemleri WordPress sitelerinde 502 hatasına neden olabilir.

Sonuç

502 Bad Gateway hatası, web sunucusu ile arka uç uygulama veya sunucu arasındaki iletişimin sağlıklı gerçekleşmediğini gösteren önemli bir HTTP hata kodudur. Sorunun kaynağı Nginx, Apache, PHP-FPM, Cloudflare veya sunucu kaynakları olabilir.

Kalıcı bir çözüm için yalnızca servisleri yeniden başlatmak yerine hata kayıtlarını incelemek, bağlantı yapılandırmalarını kontrol etmek ve sunucu kaynaklarını değerlendirmek gerekir.

Web sitenizin kesintisiz çalışması için doğru yapılandırılmış, ihtiyaçlarınıza uygun kaynaklara sahip ve düzenli olarak takip edilen bir sunucu altyapısı kullanmanız önemlidir.