Cloudflare 520 Hatası (Error 520): Nedir ve Nasıl Çözülür?

Advertisement
Cloudflare 520 Hatası (Error 520) Nedir?
Error 520, Cloudflare'in kendine ait durum kodlarından biridir. Sayfada "Web server is returning an unknown error" (web sunucusu bilinmeyen bir hata döndürüyor) yazar; altında Error code 520, bir Ray ID ve üç kutu bulunur: tarayıcınız (Working), Cloudflare (Working) ve sunucu (Error).
Cloudflare'in belgeleri bunu şöyle tanımlar: "the origin server returns an empty, unknown, or unexpected response to Cloudflare" (kaynak sunucu Cloudflare'e boş, bilinmeyen veya beklenmedik bir yanıt döndürür). Başka bir deyişle Cloudflare web sitesinin gerçek sunucusuna (kaynak sunucu, origin) bağlandı, ancak geri gelen şey iletebileceği geçerli bir HTTP yanıtı değildi: durum kodu yoktu, yanıt boştu, bağlantı sıfırlandı ya da ayrıştıramadığı bir şey geldi.
520 her şeyi kapsayan bir koddur. Cloudflare neyin ters gittiğini anlayabildiğinde (reddedilen bağlantı, zaman aşımı, SSL hatası) daha belirli kodlar kullanır; bu yüzden 520, kaynak sunucunun Cloudflare'in sınıflandıramadığı bir şekilde yanıt verdiği anlamına gelir.
Error 520 ile 521, 522, 523, 524, 525 ve 526 Farkı
Cloudflare'in 52x kodlarının tamamı Cloudflare ile kaynak sunucu arasındaki bir sorunu tanımlar. Numara size nereye bakmanız gerektiğini söyler:
| Kod | Sayfa metni | Ne oldu |
|---|---|---|
| 520 | Web server is returning an unknown error | Kaynak sunucudan boş, bilinmeyen veya beklenmedik yanıt |
| 521 | Web server is down | Kaynak sunucu bağlantıyı reddetti |
| 522 | Connection timed out | Cloudflare kaynak sunucuyla bağlantıyı tamamlayamadı |
| 523 | Origin is unreachable | Kaynak sunucuya giden bir rota yok (DNS'teki kaynak IP'yi kontrol edin) |
| 524 | A timeout occurred | Bağlantı kuruldu, ancak kaynak sunucu zamanında yanıt vermedi |
| 525 | SSL handshake failed | Kaynak sunucuyla HTTPS el sıkışması başarısız oldu |
| 526 | Invalid SSL certificate | Kaynak sunucunun sertifikası Full (strict) modu için geçerli değil |
Sayfada bunun yerine düz bir 502 veya 504 görünüyorsa 502 Bad Gateway ve 504 Gateway Timeout rehberlerine bakın. 521 ve 522 için kaynak sunucunun 443 veya 80 portunun bağlantı kabul edip etmediğini Port Kontrolü aracıyla dışarıdan kontrol edin. 525 ve 526 için SSL Sertifika Kontrolü aracı kaynak sunucunun sertifikasını gösterir; ERR_SSL_VERSION_OR_CIPHER_MISMATCH rehberi ise TLS sürümü ve şifre paketi sorunlarını ele alır.
Advertisement
520 Hatasına Ne Neden Olur?
Cloudflare, sorun giderme belgelerinde şu nedenleri sıralar:
Kaynak sunucu çöküyor veya yanlış yapılandırılmış; örneğin istek ortasında ölen bir PHP veya Node işlemi.
Bir güvenlik duvarı veya güvenlik eklentisi, kaynak sunucuda Cloudflare'in IP'lerini engelliyor; bu yüzden bağlantılar yanıtlanmak yerine kesiliyor.
Yanıt başlıkları 128 KB'ı aşıyor; bu çoğu zaman fazla sayıda veya fazla büyük çerezden kaynaklanır.
Boş veya hatalı biçimlendirilmiş yanıtlar: HTTP durum kodu ya da gövde içermeyen yanıtlar.
Eksik yanıt başlıkları veya düzgün HTTP hata yanıtları döndürmeyen bir kaynak sunucu.
HTTP/2 to Origin etkinken kaynak sunucuda hatalı bir HTTP/2 yapılandırması.
Kaynak sunucu buna göre ayarlanmamışken Cloudflare'de Authenticated Origin Pulls özelliğinin etkinleştirilmesi.
Ziyaretçiyseniz
Web sitesinin sunucusunu düzeltemezsiniz, ancak iki şeyi denemeye değer. Bir dakika sonra sayfayı yenileyin; bir çökme veya yeniden başlatmanın neden olduğu 520 kendiliğinden geçebilir. Ve sitenin çerezlerini temizleyin: neden çerezlerden oluşan aşırı büyük başlıklarsa, o sitenin çerezlerini silmek (adres çubuğunun solundaki simge → Çerezler ve site verileri) sorunu sizin için çözebilir.
Hata sürüyorsa site sahibine haber verin ve hata sayfasının altındaki Ray ID değerini ekleyin; bu sayede site sahibi sizin isteğinizi Cloudflare'de tam olarak bulabilir.
Advertisement
Çözüm 1: Kaynak Sunucunun Hata Günlüklerini Okuyun
Cloudflare'in ilk önerisi, hatanın oluştuğu zamana ait kaynak sunucu günlüklerine bakmaktır. Çökmeler, bellek yetersizliği nedeniyle sonlandırılan işlemler ve bağlantı sıfırlamaları orada görünür:
sudo tail -n 50 /var/log/nginx/error.log # veya /var/log/apache2/error.log
journalctl -u your-app --since "15 min ago" # uygulama hizmeti günlükleri
pm2 logs --lines 50 # PM2 altındaki Node uygulamaları
dmesg -T | grep -i "killed process" # bellek yetersizliği (OOM) sonlandırmalarıÇözüm 2: Kaynak Sunucuyu Cloudflare Olmadan Test Edin
Sayfayı Cloudflare'i atlayarak doğrudan kaynak sunucudan isteyin ve ham yanıta bakın. curl ile tek bir istek için ana makine adını kaynak sunucunun IP'sine yönlendirebilirsiniz:
# 203.0.113.10 yerine kaynak sunucunuzun IP'sini yazın
curl -sv --resolve example.com:443:203.0.113.10 https://example.com/broken-page -o /dev/null
# Aranacak şey: normal bir "HTTP/1.1 200" (veya HTTP/2 200) durum satırı ve başlıklar.
# Burada "Empty reply from server" veya "Connection reset by peer" görmek 520'yi yeniden üretir.Cloudflare geçici bir çözüm de önerir: siz sorunu araştırırken ziyaretçilerin kaynak sunucuya doğrudan ulaşması için DNS kaydını DNS only (yalnızca DNS, gri bulut) olarak ayarlayın veya Cloudflare'i duraklatın. Bunun kaynak sunucunuzun IP'sini açığa çıkardığını unutmayın. DNS Robot'un DNS Sorgulama aracı, alan adınız için dünyanın şu anda hangi IP'leri gördüğünü gösterir; HTTP Başlık Kontrolü aracı ise trafik Cloudflare üzerinden geçtiğinde server: cloudflare ve cf-ray başlıklarını gösterir.
Advertisement
Çözüm 3: Kaynak Sunucuda Cloudflare'in IP Aralıklarına İzin Verin
Tüm ziyaretçi trafiği kaynak sunucunuza Cloudflare'in IP aralıklarından ulaşır; bu yüzden "şüpheli" IP'leri hız sınırlamasına tabi tutan veya engelleyen bir güvenlik duvarı, fail2ban jail'i ya da güvenlik eklentisi sonunda Cloudflare'in kendisini engelleyebilir. https://www.cloudflare.com/ips/ adresinde yayımlanan aralıklara güvenlik duvarınızda ve güvenlik eklentilerinizde izin verin, ayrıca hız sınırlarının Cloudflare'e değil ziyaretçilere uygulanması için web sunucunuzun gerçek ziyaretçi IP'sini CF-Connecting-IP başlığından okuduğundan emin olun.
Çözüm 4: Yanıt Başlıklarını 128 KB'ın Altında Tutun
Cloudflare, başlıkları 128 KB'ı aşan kaynak sunucu yanıtlarını reddeder ve bunun olağan nedeni çerezlerdir. Bir sayfanın kaç Set-Cookie başlığı gönderdiğini ve bunların ne kadar büyük olduğunu kontrol edin. Artık ihtiyaç duymadığınız çerezleri kaldırın, oturum çerezlerini küçük tutun ve çerezlere büyük veriler yazan uygulamalardan veya eklentilerden kaçının.
Advertisement
Çözüm 5: HTTP/2 to Origin ve Authenticated Origin Pulls Ayarlarını Kontrol Edin
HTTP/2 to Origin: Cloudflare'de (Speed ayarları altında) etkinse ancak kaynak sunucunun HTTP/2 kurulumu bozuksa, yanıtlar 520 ile başarısız olabilir. Cloudflare, kaynak sunucunun HTTP/2 yapılandırmasını kontrol etmeyi veya doğrulamak için HTTP/2 to Origin özelliğini kapatmayı önerir.
Authenticated Origin Pulls: bu özellik Cloudflare'de açıksa, kaynak sunucunun Cloudflare'in istemci sertifikasını kabul edecek şekilde yapılandırılması gerekir. Yapılandırılmamışsa özelliği kapatın veya kaynak sunucu kurulumunu tamamlayın.
Çözüm 6: Cloudflare Desteğine Ne Gönderilmeli
Kaynak sunucu sağlıklı görünüyor ve 520 hatası sürüyorsa Cloudflare sizden şunları ister:
Hatanın oluştuğu URL'lerin tam adresleri.
Hata sayfasındaki cf-ray kimliği.
http://yourdomain.com/cdn-cgi/traceadresinin çıktısı.Biri Cloudflare etkinken, diğeri devre dışıyken kaydedilmiş iki HAR dosyası (DevTools → Ağ (Network) → dışa aktar).
Bir sitenin Cloudflare arkasında olup olmadığını görün
DNS Robot'un HTTP Başlık Kontrolü aracı, herhangi bir URL'nin durum kodunu, server başlığını ve cf-ray kimliğini gösterir; böylece bir 520 hatasını ve sitenin önünde Cloudflare olup olmadığını doğrulayabilirsiniz.
Dene HTTP Başlık KontrolüAdvertisement
Sıkça Sorulan Sorular
Web sitesinin kaynak sunucusunun Cloudflare'e boş, bilinmeyen veya beklenmedik bir yanıt döndürdüğü anlamına gelen bir Cloudflare hatasıdır. Tarayıcınız ve Cloudflare çalışıyordur; düzgün yanıt vermeyen kaynak sunucudur.