Mehmet

WFN Üye
Konular
1,151
Mesajlar
1,152
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi
HTTP 502 Bad Gateway, ağ geçidi veya ters proxy görevi yapan bir sunucunun arka uçtan geçerli bir yanıt alamadığını gösterir. İstek genellikle tarayıcıdan doğrudan uygulamaya değil; Nginx, Apache, CDN veya yük dengeleyici gibi bir ara katmana gider. Bu katman uygulamaya bağlanamaz, geçersiz yanıt alır ya da uygulama bağlantıyı beklenmedik biçimde kapatırsa kullanıcıya 502 dönebilir. Sorun çoğunlukla sunucu tarafındadır; yalnızca tek bir bağlantıda görülüyorsa VPN, proxy, DNS veya yerel güvenlik yazılımları da ayrıca incelenmelidir.

502 hatası nasıl oluşur?​


Örneğin ziyaretçi example.com adresine gider. İstek önce Nginx'e ulaşır, Nginx de isteği 127.0.0.1:8080 adresindeki Node.js uygulamasına iletir. Uygulama çalışmıyorsa, farklı bir portta dinliyorsa, bağlantıyı reddediyorsa veya geçersiz HTTP başlıkları üretiyorsa Nginx isteği tamamlayamaz ve 502 yanıtı verebilir.

Nginx yapılandırmasındaki proxy_pass adresi, protokolü, portu ve varsa Unix soketi gerçek arka uçla eşleşmelidir. PHP-FPM kullanılan yapılarda benzer kontrol FastCGI soketi veya portu için yapılır. Hata sayfası CDN markalıysa sorun CDN ile origin arasındaki iletişimde; doğrudan web sunucusunun sayfasıysa origin veya uygulama katmanında olabilir.

502 ile 504 aynı anlama gelmez. 502, ağ geçidinin geçersiz veya kullanılamayan bir yanıtla karşılaştığını; 504 ise arka uçtan belirlenen süre içinde yanıt alınamadığını ifade eder. Bu nedenle 502 görüldüğünde yalnızca zaman aşımı değerlerini artırmak yerine arka uç servisinin gerçekten yanıt verip vermediği doğrulanmalıdır.

502 hatasını teşhis etme adımları​

  1. Hatanın kapsamını belirleyin. Farklı bir ağdan, cihazdan veya gizli pencereden deneyin. Her yerde oluşuyorsa sunucu tarafına; yalnızca tek bağlantıda oluşuyorsa istemci ağına odaklanın.
  2. İstek zincirini çıkarın. Alan adı doğrudan origin'e mi, CDN'e mi, yük dengeleyiciye mi gidiyor belirleyin. Hata sayfasının markalı olup olmadığını ve yanıt başlıklarını not edin.
  3. Arka uç servisini kontrol edin. Uygulamanın çalıştığını, beklenen adres ve portta dinlediğini doğrulayın. Sunucu üzerinde, yalnız yönettiğiniz uygulamanın beklenen yerel adresinden yanıt alınıp alınmadığını kontrol edin; örneğin bu yapıdaki http://127.0.0.1:8080 hedefi kullanılabilir. Test kayıtlarında parola, erişim belirteci ve kişisel verileri paylaşmayın.
  4. Ters proxy hedefini inceleyin. proxy_pass, FastCGI hedefi, Unix soketi, protokol ve port değerlerinin çalışan servisle aynı olduğundan emin olun.
  5. Web sunucusu ile uygulama günlüklerini aynı zaman aralığında karşılaştırın. connection refused, invalid header, soket bulunamadı, uygulama çökmesi veya bağlantının erken kapanması gibi kayıtlar kök nedeni daraltır.
  6. Kaynak kullanımını inceleyin. Bellek tükenmesi, işlem veya dosya tanıtıcısı sınırı, aşırı eşzamanlı bağlantı ve otomatik yeniden başlayan servisler aralıklı 502 oluşturabilir.
  7. Değişiklikten sonra yapılandırmayı doğrulayın, servisi kontrollü biçimde yeniden yükleyin ve hem arka uçtan hem de gerçek alan adı üzerinden HTTP durum kodunu test edin. Başarısız bir HTTP yanıtını başarılı kabul etmeyin.
İlk kontrol noktasını seçmek için aşağıdaki ayrım kullanılabilir:
BelirtiMuhtemel katmanİlk kontrol
Tüm ziyaretçilerde 502Origin veya uygulamaServis durumu ve günlükler
Yalnız CDN üzerinden 502CDN-origin bağlantısıOrigin erişimi, DNS ve güvenlik duvarı
Yalnız belirli yollar veya isteklerUygulama ya da proxy kuralıİstek yolu, başlıklar ve uygulama günlükleri
Kısa süreli, tekrarlayan 502Kaynak veya servis kararsızlığıBellek, bağlantı sınırı ve yeniden başlatmalar

Sık yapılan hatalar​


Tarayıcı önbelleğini temizlemek, origin servisinin çalışmadığı bir 502'yi genellikle çözmez. Benzer şekilde, yalnızca proxy hedefini değiştirip hedef servisin aynı portta veya sokette dinlediğini doğrulamamak sorunu devam ettirir.

CDN kullanılan yapılarda rastgele DNS değişikliği yapmak da doğru ilk adım değildir. Önce CDN'nin origin'e erişebildiği, origin güvenlik duvarının CDN trafiğini engellemediği ve alan adı için doğru sanal host yanıtının üretildiği kontrol edilmelidir.

Servisi art arda yeniden başlatmak geçici olarak belirtiyi gizleyebilir ve teşhis için gerekli günlükleri kaybettirebilir. Mümkünse yeniden başlatmadan önce hata zamanı, son yapılandırma değişikliği, servis günlükleri ve kaynak kullanımını kaydedin. Sorun yalnızca bazı istemcilerdeyse VPN, proxy, DNS ve yerel güvenlik ayarlarını da sunucu kontrollerine ekleyin.

Sık sorulan sorular​


502 yanıtını 503 ile değiştirmek sorunu çözer mi?​


Hayır. Durum kodunu değiştirmek arka uç iletişim sorununu gidermez. 502, proxy ile upstream arasındaki geçersiz veya kullanılamayan yanıtı; 503 ise hizmetin geçici olarak hazır olmadığını anlatır. Kod, gerçek duruma uygun seçilmelidir.

502 hatası için hangi kayıt zamanı kullanılmalı?​


Tarayıcıdaki hata zamanından çok, web sunucusu, proxy/CDN ve uygulama günlüklerinin aynı saat dilimindeki kayıtlarını karşılaştırın. CDN veya destek talebi açılan yapılarda saat dilimini de belirtmek olayın doğru isteğe eşleştirilmesini kolaylaştırır.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler