Cloudflare Hata 522: Bağlantı Zaman Aşımı - Nedenler ve Çözümler
Cloudflare hata 522, Cloudflare'in kaynak sunucunuza bir TCP bağlantısı açmayı denediği ve zaman aşımı içinde, yaklaşık 15 saniye, hiçbir yanıt almadığı anlamına gelir. Reddedilen bir bağlantının aksine, hiçbir şey "hayır" demedi; kaynak basitçe zamanında hiç yanıt vermedi.
Hata 522 ne anlama gelir
Proxy'lenen her istek, Cloudflare'in HTTP isteğinin kendisini gönderebilmesinden önce kaynağınıza bir TCP bağlantısı açmasıyla başlar. Hata 522, bu el sıkışma, TCP SYN ve beklenen geri SYN-ACK, Cloudflare'in zaman aşımı penceresi içinde tamamlanmadığında tetiklenir. Kaynak yeni bağlantıları kabul edemeyecek kadar aşırı yüklenmiş olabilir, bir güvenlik duvarı paketleri reddetmek yerine sessizce düşürüyor olabilir, veya Cloudflare ile kaynak arasındaki ağ yolu tıkanmış olabilir.
Bu, kaynağın bağlantıyı aktif olarak reddettiği hata 521'den ve TCP bağlantısının başarılı olduğu ama HTTP yanıtının kendisinin zamanında hiç gelmediği hata 524'ten farklıdır. Hata 522, özellikle el sıkışma aşamasında, herhangi bir HTTP isteği gönderilmeden önceki bir başarısızlıktır.
Hata 522 nasıl görünür
Ziyaretçiler, bir Ray ID ile birlikte Cloudflare'in sayfasını, "Error 522: connection timed out"'u görür. Alan adına karşı bir curl isteği, kabaca Cloudflare'in zaman aşımı penceresinden sonra aynı durumu gösterir:
curl -I https://example.com
HTTP/2 522
TCP el sıkışması hiç bitmediğinden, hiçbir istek uygulamanıza ulaşmaz, bu yüzden uygulama günlükleri başarısız dönem için tipik olarak boştur. Bunun yerine bağlantı düzeyindeki ölçümlere bakın: hataların olduğu andaki sunucu yükü ve CPU, kurulan ve bekleyen bağlantı sayısı (ss -s veya netstat -an | grep SYN_RECV), ve ilgili porttaki düşürülen veya filtrelenen paketler için güvenlik duvarı veya yük dengeleyici günlükleri.
Hata 522'ye ne sebep olur
- Kaynak sunucu aşırı yüklü ve yeni bağlantıları yeterince hızlı kabul edemiyor. Yüksek CPU, dolu bir bağlantı kuyruğu veya tükenmiş bir worker havuzu, hepsi buna neden olur.
- Bir güvenlik duvarı veya güvenlik grubu, Cloudflare'in SYN paketlerini bir TCP sıfırlaması göndermek yerine sessizce düşürüyor. Bir düşürme, Cloudflare tarafından yavaş veya ölü bir sunucuyla aynı görünür, oysa bir sıfırlama bunun yerine hata 521 üretirdi.
- Kaynakta TCP keepalive devre dışı, ki bu bağlantı devrini artırır ve yeni bir el sıkışmanın sunucunun onu kabul edemeyecek kadar meşgul olduğu bir anda ortaya çıkma olasılığını yükseltir.
- Ağ, basit bir güvenlik duvarı kuralı yerine açık bir beyaz liste gerektirdiğinde kaynağın IP adresi doğru şekilde beyaz listeye alınmamış, bu yüzden Cloudflare'in istekleri dinleyen soketine ulaşmadan önce filtrelenir.
- Cloudflare ile kaynak arasında ağ tıkanıklığı veya paket kaybı, tüketici sınıfı veya ağır şekilde aşırı abone olan barındırma arkasındaki kaynaklarda daha yaygın.
522'ye karşı 524
Her iki kod da zaman aşımıdır, ama istekte farklı noktalarda gerçekleşirler. Hata 522, herhangi bir HTTP isteği gönderilmeden önce gerçekleşir: TCP el sıkışmasının kendisi hiç tamamlanmaz. Hata 524 sonrasında gerçekleşir: TCP bağlantısı başarılı olur ve Cloudflare HTTP isteğini gönderir, ama kaynak 100 saniye içinde tam bir yanıt geri göndermez. Bir 524 genellikle yavaş bir uygulamaya işaret eder, örneğin bir rapor oluşturma uç noktası, uzun bir veritabanı sorgusu, veya meşru olarak dakikalar süren cron tetiklemeli bir istek. Bir 524'ün düzeltmesi neredeyse her zaman uç noktayı hızlandırmak veya yavaş işi istek-yanıt döngüsünden çıkarıp istemcinin bir sonuç için yokladığı bir arka plan işine taşımaktır; Cloudflare Enterprise planları belirli rotalar için 100 saniyelik sınırı da yükseltebilir, ama bu yavaş uç noktanın kendisi yerine belirtiyi tedavi eder.
Kimin hatası olduğunu nasıl anlarsınız
Bir 522 neredeyse her zaman kaynakta veya yakınında ortaya çıkar, çünkü Cloudflare'in kendi ağı son derece yüksek erişilebilirliğe sahiptir ve nadiren bir el sıkışma zaman aşımının kaynağıdır. Yararlı soru, kaynağın tamamen kapalı mı yoksa belirli bölgelerden gelen yük altında zorlanıyor mu olduğudur. Kontrol etmenin en hızlı yolu birden fazla konumdan aynı anda bir HTTP kontrolü çalıştırmaktır: HostTracker'ın HTTP kontrolü, alan adını birden fazla ülkedeki kontrol noktalarından sorgular ve her birini ayrı ayrı bildirir, bu yüzden bazı konumların zaman aşımına uğradığı ve diğerlerinin başarılı olduğu bir kalıp, bazı istekleri işleyen ama hepsini işlemeyen aşırı yüklü bir sunucuya işaret ederken, her yerde tekdüze bir zaman aşımı kaynağın tamamen kapalı olduğuna veya bir güvenlik duvarının her bağlantıyı düşürdüğüne işaret eder.
Hata 522 nasıl düzeltilir
Bir ziyaretçiyseniz
- Kısa bir bekleme sonrasında yeniden yükleyin. Yükte anlık bir sıçrama veya kısa bir ağ aksaklığı genellikle kendi kendine düzelir.
- Varsa, bilinen bir olay için sitenin durum sayfasını kontrol edin.
- Sizin tarafınızda düzeltilecek bir şey yoktur. Zaman aşımı, tarayıcınızda veya Cloudflare'e bağlantınızda değil, Cloudflare ile sitenin kendi sunucusu arasında gerçekleşir.
Siteyi çalıştırıyorsanız
- Başarısızlıkların olduğu andaki sunucu yükünü ve kullanılabilir bağlantı kapasitesini kontrol edin: CPU, bellek, ve web sunucusunun yapılandırılmış bağlantı veya worker sınırları (örneğin nginx'in
worker_connections'ı). - Güvenlik duvarınızın veya güvenlik grubunuzun ilgili portta Cloudflare'in yayınlanan IP aralıklarına izin verdiğini, ve paketleri sessizce düşürmek yerine bir sıfırlamayla reddettiğini doğrulayın, ki bu en azından bir 522'yi teşhis edilmesi daha kolay bir 521'e çevirir.
- Kaynağın web sunucusunda ve önündeki herhangi bir yük dengeleyicide TCP keepalive'ı etkinleştirin, ve işletim sistemi düzeyindeki keepalive ayarlarının bağlantının gerçekte ihtiyaç duyduğundan çok daha uzun varsayılanlarda bırakılmadığını kontrol edin.
- Barındırmanız veya bulut ağınız güvenlik duvarından ayrı açık bir IP beyaz listesi gerektiriyorsa, kaynağın IP'sinin onda olduğunu doğrulayın.
- Cloudflare'i atlayarak, gecikmenin sunucunuza ulaşmakta bile olup olmadığını görmek için ham el sıkışmayı doğrudan kaynağa karşı zamanlayın:
Burada takılan bir bağlantı, kaynağın kendisinin bağlantıları kabul etmekte yavaş olduğunu, Cloudflare'e özgü bir şey olmadığını doğrular.curl -v -H "Host: example.com" --connect-timeout 5 https://ORIGIN_IP/ - Genel olarak aşırı yüklü bir sunucu yerine yavaş bireysel uç noktalar için, uzun süren işi (raporlar, dışa aktarmalar, toplu işler) istek yolundan çıkarıp istemcinin yokladığı veya bildirim aldığı bir arka plan işine taşıyın, ve hızlı bir şekilde hızlandıramayacağınız rotalar için Cloudflare Enterprise zaman aşımı artışını yalnızca geçici bir çözüm olarak değerlendirin.
Nasıl önlenir
Sadece zirve yükte el sıkışmasında başarısız olan bir sunucu, kendiniz çalıştırdığınız her manuel kontrolü geçer, çünkü onu tam olarak zorlandığı anda test etme olasılığınız düşüktür. Ağınızın dışından bir zamanlamayla çalışan bir HTTP kontrolü, kimse izlemiyor olsa bile o başarısızlık penceresini yakalar, ve birden fazla ülkeden çalıştırmak yavaşlamanın küresel kapasite mi yoksa bölgesel bir ağ yolu mu olduğunu gösterir.
İlgili hatalar
- Cloudflare hata 520: bilinmeyen hata - kaynak yanıt verdi, ama yanıt kullanılamazdı.
- Cloudflare hata 521: web sunucusu kapalı - kaynak, yanıt vermek yerine bağlantıyı reddetti.
- 5xx sunucu hataları - genel durum kodu ailesi.
- 502 Bad Gateway - bir üst akış hatasının Cloudflare'e özgü olmayan versiyonu.
Sık sorulan sorular
Cloudflare hata 522'yi göstermeden önce ne kadar bekler?
TCP el sıkışması için yaklaşık 15 saniye. Kaynak o zamana kadar bağlantıyı kabul etmediyse, Cloudflare vazgeçer ve ziyaretçiye 522 döndürür.
522, sunucumun kapalı olmasıyla aynı mı?
Her zaman değil. Sunucunun açık olduğu ama zamanında yeni bir bağlantı kabul edemeyecek kadar meşgul olduğu, veya bir güvenlik duvarının sıfırlama göndermeden bağlantı denemesini düşürdüğü anlamına da gelebilir.
Bir güvenlik duvarı neden bir bağlantıyı reddetmek yerine düşürür?
Bazı varsayılan güvenlik duvarı veya güvenlik grubu yapılandırmaları, bir izin kuralıyla eşleşmeyen paketleri bir TCP sıfırlaması göndermek yerine sessizce atar. Hızlı, net bir 521 olabilecek şeyi daha yavaş, daha belirsiz bir 522'ye çeviren şey bu sessiz düşürmedir.
522, sunucumu yükseltmem gerektiği anlamına mı gelir?
Mutlaka değil. Ölçeklendirmeden önce, keepalive'ın devre dışı olup olmadığını, güvenlik duvarının Cloudflare'in aralıklarını sessizce düşürüp düşürmediğini, ve web sunucusu yapılandırmasındaki bağlantı sınırlarının trafiğin gerçekte gerektirdiğinden daha düşük ayarlanıp ayarlanmadığını kontrol edin.
522 ile 524 arasındaki fark nedir?
522, TCP el sıkışmasını bile tamamlayamamaktır. 524, HTTP yanıtının kendisinin çok uzun sürdüğü tamamlanmış bir bağlantıdır, genellikle bir ağ veya kapasite sorunu yerine yavaş uygulama mantığı yüzünden.
Tek bir yavaş veritabanı sorgusu bir 522'ye neden olabilir mi?
Doğrudan değil, çünkü 522 herhangi bir istek gönderilmeden önce gerçekleşir. Yavaş bir sorgu, bağlantının başarılı olduğu ama yanıtın gelmesinin çok uzun sürdüğü bir 524 üretme olasılığı daha yüksektir.