╔══════════════════════════════════════════════════════════════╗
║ "Bir sistemin gerçek gücü, en hızlı vurmasında değil; ║
║ en kritik anda bile soğukkanlı kalıp doğru yanıtı ║
║ zamanında verebilmesindedir." ║
║ — Ersan Karavelioğlu ║
╚══════════════════════════════════════════════════════════════╝
Error 524, Cloudflare'in origin sunucuya başarıyla bağlandığı, hatta istek için bağlantı kurulduğu hâlde origin'in zamanında HTTP yanıtı dönmediği durumlarda verdiği bir Cloudflare 5xx hatasıdır. Yani mesele "bağlanamadım" değil; "bağlandım ama yanıt gelmedi" meselesidir.
Cloudflare dokümanına göre 524, origin'in varsayılan Proxy Read Timeout süresi içinde yanıt vermemesiyle görülür ve bu varsayılan süre 120 saniyedir.
Ek olarak, bazı senaryolarda Cloudflare "yazma" tarafında da zaman aşımı değerlendirebilir: origin'e veri yazımı 30 saniye Proxy Write Timeout içinde tamamlanmazsa yine 524 görülebilir.
524 genelde şu hatalarla karıştırılır:
- 522: Cloudflare origin'e bağlantı kuramaz ya da TCP seviyesinde problem vardır
- 504: upstream gateway zincirinde farklı zaman aşımı senaryoları olabilir
524 ise özellikle şunu söyler: "Bağlantı tamam, yanıt gecikti".
Bu hatanın psikolojisi şudur: Sunucu (veya uygulama) isteği aldı, fakat içeride bir şeyler uzadı, kilitlendi, şişti. Çoğu zaman sebep "internet" değil; uygulama yükü, veritabanı, CPU, RAM, disk IO, kilitlerdir.
Aşağıdaki durumlar 524'ün en tipik sebepleridir:
- Uzun süren işlemler (rapor üretme, export, import, arşiv açma)
- Ağır veritabanı sorguları (JOIN, büyük tablo taraması, indeks eksikliği)
- Sunucu kaynak yetersizliği (CPU tavan, RAM dolu, swap yok, disk IO boğulması)
- Uygulama kilitlenmesi / deadlock (özellikle DB veya dosya kilitlerinde)
- Yoğun trafik / bot / saldırı yükü
Cloudflare de bunu "origin çok iş yapıyor veya kaynakta zorlanıyor" olarak tarif eder.
WordPress, XenForo, Laravel, WooCommerce gibi yapılarda 524 genelde şunlardan çıkar:
- Eklenti çakışması
- Yavaş tema sorguları
- Admin tarafında export/backup
- Görsel işleme (thumbnail üretimi)
- Cron tetiklenmesi ile aynı anda ağır iş
Burada kritik nokta: Cloudflare bekler, origin "işi bitirene" kadar ilk byte'ı vermezse 524 gelir.
524'ün en sinsi türü: DB sorgusu çalışır ama kilide takılır, tablo tarar, indeks yoktur veya concurrency artar. Bu durumda uygulama yanıt üretmez, Cloudflare süreyi doldurur. Çözüm: yavaş sorgu tespiti ve indeksleme.
Şu belirtiler varsa 524 ihtimali yükselir:
- CPU sürekli %90+
- RAM sürekli dolu, OOM veya swap baskısı
- Disk IO beklemesi yüksek
- PHP-FPM process sayısı yetmiyor ya da aşırı şişiyor
Bu tablo "yanıt üretme"yi geciktirir, Cloudflare süreyi keser.
Şunu sırayla yap:
- Cloudflare kapalı test: Aynı endpoint'i kısa süreli DNS-only (gri bulut) ile dene (mümkünse)
- Origin log süreleri: Access log'da request time, upstream time değerlerine bak
- Uygulama log'u: Hangi endpoint uzun sürüyor
- DB slow query log: Uzayan sorgu var mı
- Kaynak izlemesi: anlık load, RAM, disk IO
Cloudflare de origin'de "request response time loglamak teşhise yardımcı olur" diye özellikle belirtir.
| Belirti | Büyük ihtimal neden | En hızlı çözüm |
|---|---|---|
| Admin'de rapor/export 524 | İşlem 120s üstü | İşi background'a taşı, polling yap |
| Sitede anlık 524 dalgası | Trafik bot patlaması | Rate limit, cache, bot filtre |
| Sadece belirli sayfalar | Ağır DB sorgusu | İndeks, sorgu optimizasyonu |
| Upload sırasında 524 | Write timeout | Chunk upload, doğrudan storage |
| Her şey yavaş | CPU/RAM/IO darboğaz | Kaynak artır, süreçleri ayarla |
524'ün "en temiz" çözümü şudur:
İstek anında işi bitirmeye çalışma.
- İsteği al
- Hemen "job başladı" diye kısa yanıt ver
- Arka planda işle
- Kullanıcıya durum sorgulama (status polling) endpoint'i sağla
Cloudflare de uzun işlemler için status polling önerir.
Birçok 524, aslında aynı içeriğin tekrar tekrar üretilmesinden çıkar.
- HTML cache (uygunsa)
- Object cache (Redis/Memcached)
- Query cache mantığı (uygulama seviyesinde)
- CDN cache kuralları
Buradaki fikir: origin'e düşen iş azalırsa, yanıt süresi kısalır ve 524 kaybolur.
- Büyük listelemeleri sayfalandır
- API response'larını küçült
- Görsel işlemleri asenkron yap
- PDF, rapor, excel export'u arka plana al
- DB indekslerini düzelt
- N+1 sorgu problemini çöz
Bu adımlar "yanıtın ilk byte'ını" hızlandırır, 524 riskini düşürür.
524 Cloudflare tarafı timeout'tur; ama origin'in kendi içinde de darboğaz vardır:
- PHP-FPM max_children yetersizse kuyruk oluşur
- Slow request'ler worker'ları kilitler
- Nginx upstream bağlantıları boğulur
Ama unutma: Cloudflare 120 saniyede kesiyorsa, origin'i 300 saniyeye ayarlamak tek başına yetmez; esas hedef 120 saniyenin altına indirmek olmalı.
Cloudflare'in önerdiği iki ana yol:
- 120 saniyeyi aşan işleri proxy arkasından çıkar ve DNS-only subdomain'e al (gri bulut)
- Eğer Enterprise isen timeout'u artırma seçenekleri var (aşağıda)
Cloudflare dokümanında Enterprise müşterileri için 524 timeout'un 6.000 saniyeye kadar artırılabileceği, bunun da Cache Rule üzerinden Proxy Read Timeout ayarı veya zone setting API ile yapılabileceği yazıyor.
Bu önemli: Eskiden sık duyulan "100 saniye" eşiği hâlâ birçok kaynakta geçer; fakat Cloudflare'in güncel dokümanında varsayılan süre 120 saniye olarak belirtilmiş durumda.
Eğer 524 özellikle upload, image push, form post gibi "yazma" işlemlerinde geliyorsa, Cloudflare'in belirttiği Proxy Write Timeout 30 saniye sınırına takılıyor olabilirsin. Bu timeout'un ayarlanamayacağı da belirtiliyor.
Çözüm yaklaşımı:
- Chunk upload
- Doğrudan object storage'a upload
- Sunucuda işlemi sonra yap (post-process)
Şu sırayı uygula:
- En çok 524 üreten endpoint'i bul (log)
- Bu endpoint'i hızlandır (DB, cache, sayfalama)
- 120 saniyeyi aşan işleri asenkron + polling yap
- Trafik anomalisini kes (bot, rate limit)
- Sunucu kaynaklarını stabilize et (CPU/RAM/IO)
Bunlar uygulanınca 524 genelde "semptom" olmaktan çıkar ve yok olur.
524 sana şunu fısıldar: "Sunucu hayatta, ama yetişemiyor."
Bu hata bir utanç değil; bir ölçüm cihazıdır. Uygulamanın nerede ağırlaştığını, sistemin nerede boğulduğunu söyler. Onu susturmanın yolu timeout'u zorlamak değil; yanıt üretme mimarisini olgunlaştırmaktır. Çünkü sürdürülebilir internet, hızdan önce tasarım ister.
╔══════════════════════════════════════════════════════════════╗
║ "Bir sistemi kurtaran şey daha sert ayarlar değil; ║
║ daha bilinçli bir mimaridir. Hız, ancak bilinçle güzeldir." ║
║ — Ersan Karavelioğlu ║
╚══════════════════════════════════════════════════════════════╝
Son düzenleme: