Ana içeriğe geç

Rehberler / Düzeltin: insanların gerçekten karşılaştığı hatalar için rehberler

Cloudflare Hata 520: Ne Anlama Gelir, Nasıl Düzeltilir

Cloudflare hata 520, Cloudflare'in kaynak sunucunuza bağlandığı ama boş, tanınmayan veya ziyaretçiye iletilemeyecek kadar bozuk bir yanıt aldığı anlamına gelir. Cloudflare, 520 hata kodunu bir her şeyi kapsayan kod olarak kullanır: kaynaktan bir şey geri geldi, ama normal bir HTTP yanıtının kurallarına uyan bir şey değil.

Hata 520 ne anlama gelir

Cloudflare, ziyaretçi ile web sunucunuz arasında bir ters proxy olarak oturur. Normal bir istek için kaynağınıza bir TCP bağlantısı açar, isteği gönderir ve geri gelen HTTP yanıtını iletir. Hata 520, bu son adım başarısız olduğunda tetiklenir: TCP bağlantısı başarılı olur, ama takip eden baytlar geçerli bir HTTP yanıtı olarak ayrıştırılmaz, veya bağlantı kapanmadan önce hiç bayt gelmez.

Bu, 520'yi Cloudflare'in diğer 5xx kodlarından farklı bir kategoriye koyar. Hata 521, kaynağın bağlantıyı doğrudan reddettiği anlamına gelir. Hata 522, bağlantı denemesinin zaman aşımına uğradığı anlamına gelir. Hata 520, kaynağın bir şey söylediği ama Cloudflare'in ondan bir anlam çıkaramadığı veya iletemediği anlamına gelir.

Hata 520 nasıl görünür

Bir tarayıcıda, Cloudflare kendi hata sayfasını gösterir, "Error 520: web server returned an unknown error", ve Cloudflare desteğiyle iletişime geçerseniz ihtiyaç duyacağınız bir Ray ID ile birlikte. Alan adına karşı düz bir curl isteği aynı durum kodunu gösterir:

curl -I https://example.com
HTTP/2 520

Cloudflare tarafında, kontrol panelinin Security veya Analytics sekmeleri 5xx yanıtlarında bir sıçrama gösterir, ve Logpull veya Logpush erişimi olan Enterprise hesapları her başarısız istek için belirli kenar veri merkezini ve Ray ID'yi çekebilir. Ancak bunların hiçbiri kaynağın gerçekte ne gönderdiğini söylemez, bu yüzden bir sonraki bakılacak yer kendi sunucunuzdur.

Kaynakta, hatalarla aynı zaman damgası için web sunucusu ve uygulama günlüklerini kontrol edin. Bir süreç yeniden başlatması, bir bellek bozulması hatası (segfault), sistem günlüğünde bellek yetersizliğinden öldürme (dmesg veya journalctl -k), veya yanıt ortasında isteği çökerten bir uygulama hatası arayın. Uygulama günlükleri hiç olağandışı bir şey göstermiyorsa, sorun daha çok teknik olarak tamamlanmış ama aşırı büyük bir başlık gibi bir HTTP kuralını ihlal eden bir yanıttır.

Hata 520'ye ne sebep olur

  • Kaynak süreç isteği işlerken çöktü veya yeniden başladı. Bağlantı, tam bir yanıt gitmeden önce kapanır. Bu en yaygın nedendir.
  • Kaynak, TCP bağlantısını temiz bir şekilde kapatmak yerine sıfırladı (RST). Bellek baskısı altındaki veya bir worker zaman aşımına çarpan uygulama sunucuları bunu sık sık yapar.
  • Cloudflare'in 16 KB sınırını aşan yanıt başlıkları. Büyük bir set-cookie başlığı, bir yığın hata ayıklama başlığı veya ayrıntılı CORS başlıkları toplamı Cloudflare'in kabul edeceği miktarın ötesine itebilir.
  • Aşırı büyük bir çerez veya birleşik çerez başlığı. Oturum verisi, izleme çerezleri veya yanlış yapılandırılmış bir çerez deposu zamanla tarayıcı ve proxy sınırlarını aşabilir.
  • Eksik veya bozuk bir durum satırı. Bazı çatılar, işlenmemiş bir istisna web sunucusu katmanına ulaştığında düzgün bir HTTP yanıtı yerine ham bir hata dizesi döndürür.
  • Kaynak, HTTP(S) portunda HTTP olmayan veri döndürdü. Bu, yanlış yapılandırılmış bir ters proxy, yanlış bir port eşlemesi, veya gerçek web sunucusundan önce portu bağlayan bir hizmet sonrasında olur.
  • Kaynağın önündeki bir güvenlik cihazı veya WAF bağlantıyı yanıt ortasında sonlandırdı. Bazı şirket içi WAF'lar ve yük dengeleyiciler bir kuralı tetikleyen bağlantıları sonlandırır, ki bu Cloudflare tarafından bir çökmeyle aynı görünür.

Kimin hatası olduğunu nasıl anlarsınız

Cloudflare kaynaktan gerçekten bir yanıt aldığından, hata 520, bağlantının kendisinin başarısız olduğu 521 veya 522 hatasının aksine, sorunun Cloudflare'in ağında değil kaynak tarafında olduğunun güçlü bir işaretidir. Açık soru genellikle bunun her ziyaretçiyi mi yoksa sadece bazılarını mı etkilediğidir.

Bunu ayırmanın en hızlı yolu birden fazla konumdan aynı anda bir HTTP kontrolü çalıştırmaktır. Herkesin hatayı bildirdiği anda genel alan adına karşı bir kontrol her konumdan başarısız olursa, kaynağın kendisi tek bir kenar veri merkezi için değil, herkes için çöküyor veya kapalı demektir. Yalnızca aralıklı olarak veya belirli bölgelerden başarısız oluyorsa, kaynak o bölgeden yük altında aşırı yüklenmiş olabilir, veya kurulumunuzun yalnızca bir kısmında bulunan bir önbellekleme veya yük dengeleme katmanı işin içindedir. HostTracker'ın HTTP kontrolü, birden fazla ülkedeki kontrol noktalarından çalışır ve her birinin sonucunu ayrı ayrı bildirir, ki bu, kendi masanızdan tek bir curl'ün size veremeyeceği ayrıntıdır.

Kaynağı Cloudflare'den tamamen izole etmek için, alan adının Host başlığıyla doğrudan onu arayarak kenar ağını atlayabilirsiniz, böylece gördüğünüz herhangi bir hata tartışmasız kaynağa aittir:

curl -v -H "Host: example.com" https://ORIGIN_IP/

ORIGIN_IP'yi sunucunuzun gerçek IP adresiyle değiştirin. Bu doğrudan istek de başarısız olursa veya aynı bozuk yanıtı döndürürse, hata kaynakta doğrulanmış olur.

Hata 520 nasıl düzeltilir

Bir ziyaretçiyseniz

  1. Bir veya iki dakika sonra sayfayı yeniden yükleyin. Birçok 520 hatası, sitenin kendi süreç denetleyicisinin otomatik olarak kurtardığı kısa bir çökme veya yeniden başlatmadan gelir.
  2. Gizli veya gizli tarama penceresi, ya da farklı bir ağ deneyin. Bu, eski bir yerel önbelleği veya kötü davranan bir tarayıcı uzantısını eler, ancak bir 520 nadiren sizin tarafınızdaki bir şeyden kaynaklanır.
  3. Sitenin bilinen bir kesinti için kendi durum sayfası yayınlayıp yayınlamadığını kontrol edin.
  4. Bir 520'yi düzeltmek için sizin tarafınızda yapılandırılacak bir şey yoktur. Tarayıcınız, ISS'niz veya DNS çözümleyiciniz tarafından değil, sitenin kendi sunucusu tarafından üretilir.

Siteyi çalıştırıyorsanız

  1. Bir çökme, işlenmemiş bir istisna veya bir worker yeniden başlatması ararak, hataların tam zaman damgasında kaynağın web sunucusu ve uygulama günlüklerini kontrol edin.
  2. Cloudflare'i atlayın ve Host başlığıyla (yukarıda gösterildiği gibi) kaynağı doğrudan sorgulayın, veya Cloudflare'in "Pause Cloudflare on Site" seçeneğini kullanın, yanıtın proxy'den bağımsız olarak bozuk olduğunu doğrulamak için.
  3. Yanıt başlıklarınızın ve çerezlerinizin boyutunu ölçün. Tek bir büyük set-cookie başlığı veya üretimde açık bırakılmış bir yığın hata ayıklama başlığı toplamı 16 KB'ın üzerine itebilir; ihtiyacınız olmayanı budayın ve büyük oturum verisini sunucu tarafına taşıyın.
  4. Bozuk yanıtları kontrol edin: yanlış üst akışa yönlendirilmiş bir ters proxy veya yük dengeleyici, bir HTTP portunda düz metin döndüren bir uygulama, veya bir çatının varsayılan hata işleyicisinden eksik bir durum satırı.
  5. Kaynakta kaynak tükenmesini kontrol edin: bellek sınırları, bağlantı havuzu sınırları, veya bir yeniden başlatma döngüsünde takılı kalmış bir süreç yöneticisi (systemd, pm2, bir Gunicorn veya uWSGI worker havuzu).
  6. İnternet ile uygulama sunucunuz arasında bir WAF, antivirüs proxy'si veya yük dengeleyici varsa, aynı zamanda bıraktığı veya sıfırladığı bağlantılar için kendi günlüklerini kontrol edin.

Nasıl önlenir

Hata 520 genellikle önce bir destek bileti olarak ortaya çıkar, bir uyarı olarak değil, çünkü kaynaktaki hiçbir şey bir uygulama istisnasını kaydettiği gibi Cloudflare'in kenarıyla başarısız bir el sıkışmayı kaydetmez. Kendi ağınızın dışından çalışan bir erişilebilirlik kontrolü, bir ziyaretçinin gördüğü aynı başarısızlığı, aynı bakış açısından, birinin rapor etmesi gerekmeden önce yakalar. Kontrolü birden fazla ülkeden çalıştırmak, aynı zamanda bir 520'nin küresel mi yoksa bir bölgeyle mi sınırlı olduğunu hemen gösterir, ki bu nereden hata ayıklamaya başlayacağınıza karar veren ayrıntıdır.

İlgili hatalar

Sık sorulan sorular

Hata 520 Cloudflare'in mi yoksa benim hatam mı?

Neredeyse her zaman kaynağın. Cloudflare bir yanıt aldı ve ondan bir anlam çıkaramadı veya iletemedi, ki bu bozuk yanıtı Cloudflare'in ağının değil kaynak sunucunun ürettiği anlamına gelir.

Hata 520 tüm sitemin çöktüğü anlamına mı gelir?

Mutlaka değil. Onu tetikleyen belirli isteğin başarısız olduğu anlamına gelir. Kaynak yük altında çöküyorsa, altta yatan sorun düzeltilene kadar bazı isteklere 520, diğerlerine normal yanıtlar sunabilir.

Hata 520'yi sadece Cloudflare kontrol panelinden düzeltebilir miyim?

Nadiren. Neden neredeyse her zaman kaynakta olduğundan, kontrol paneli ayarları çöken bir uygulamayı veya aşırı büyük bir yanıt başlığını düzeltmez. İstisna, SSL/TLS modunuzun ve kaynak ayarlarınızın sunucunuzun gerçekte yaptığıyla eşleştiğini doğrulamaktır, ki bu en azından Cloudflare tarafında bir yanlış yapılandırmayı eler.

Hata 520 ile düz bir 502 Bad Gateway arasındaki fark nedir?

502, herhangi bir ters proxy tarafından kullanılan, bir üst akış sunucusundan geçersiz bir yanıt için genel HTTP durumudur. Cloudflare, 520'yi özellikle Cloudflare'in diğer adlandırılmış 5xx kodlarından hiçbirine uymayacak kadar bozuk bir yanıt için kendi her şeyi kapsayan kodu olarak kullanır, ki bu yüzden genel bir 502 sayfası yerine Cloudflare hata sayfası ve Ray ID görünür.

Büyük bir çerez gerçekten bir 520'ye neden olabilir mi?

Evet. Cloudflare, şu anda yaklaşık 16 KB olan toplam yanıt başlığı boyutu üzerinde bir sınır zorunlu kılar, ve çerezler buna dahildir. Bir oturum çerezine eklemeye devam eden bir uygulama, veya aynı anda birkaç büyük çerez ayarlayan bir uygulama, uygulamanın kendisinde hiçbir hata olmasa bile bu sınırı aşabilir ve bir 520 tetikleyebilir.

İsteği yeniden denemek onu düzeltir mi?

Bazen, neden kaynakta zaten kurtarılmış geçici bir çökme veya yeniden başlatmaysa. Kaynak sürekli olarak bozuk yanıtlar gönderiyorsa, örneğin her istekte aşırı büyük bir başlık nedeniyle, kaynak düzeltilene kadar yeniden denemek yardımcı olmayacaktır.

Şimdi kontrol edin

Ücretsiz kontrolü kendi sitenizde çalıştırın - hesap gerekmez.

HTTP check

Bunu sürekli izleyin

Bir sorun çıktığı anda haberdar olun: HostTracker 300’den fazla konumdan kontrol eder ve size e-posta, SMS, Slack, Telegram ve daha fazlasıyla bildirim gönderir.

HostTracker özellikleri

Bu bölümde daha fazlası: Düzeltin: insanların gerçekten karşılaştığı hatalar için rehberler