Büyük dosya yüklemeleri başarısız oluyor; neden?
Kısa cevap
Nedeni durum kodu ve yanıtı kimin ürettiği gösterir. 413 ya da uygulamanın kendi hatası Kurum Servisinden geliyorsa sınır sunucudadır (ör. web sunucusunun gövde boyutu sınırı). TR7 tarafındaki sık nedenler WAF'ın Raw Body Size kısıtı ve Allowed Upload Mime Types listesi (varsayılan Blocking Status Code 418), boyut koşuluna bağlı bir Block aksiyonu, yükleme bittikten sonra işlem sırasında dolan Server Timeout (504) ve yükleme sırasında istemcinin sessiz kaldığı Client Timeout'tur. WAF ya da Debug mode açık vService'lerde isteğin tampona alınan ilk bölümü HTTP Request Timeout (varsayılan 30 sn) içinde gelmelidir; gelmezse 408 döner. vService Limits'teki Buffer Size(kB) yüklenebilecek dosya boyutunu sınırlamaz.
Olası Nedenler
| Belirti | Backend service | Neden | Bakılacak sayfa |
|---|---|---|---|
| 413 ya da uygulamanın hata sayfası | Sunucu adı | Kurum Servisinin gövde boyutu sınırı | Sunucu ayarı (web sunucusu ya da uygulama) |
| Block aksiyonunda seçilen kod (ör. 413) | TR7 | Content-Length koşuluna bağlı Block aksiyonu | Büyük boyutlu istekleri (ör. belirli bir boyutun üzerini) engelleyebilir miyim? |
| 418 ya da WAF engel sayfası | TR7 | WAF: Raw Body Size aralığı, Allowed Upload Mime Types, Allowed Raw Body Mime Types, Block Unparsed Contents | WAF Event Logs'taki ihlal okunur; kısıt ya da liste genişletilir |
| 408 | TR7 | WAF ya da Debug mode açıkken yavaş yüklemenin ilk bölümü HTTP Request Timeout içinde gelmiyor | Timeouts profilindeki değerler (HTTP Keepalive Timeout, HTTP Request Timeout, Connect, Server, Client, Queue, Tunnel(Websocket) Timeout, Client FIN, Server FIN) ne anlama gelir? |
| Yükleme ortasında bağlantı kopuyor | - | Client timeout: istemci süre boyunca veri göndermedi | Uzun süren işlemlerde (rapor, dosya yükleme) istek neden yarıda kesiliyor; hangi timeout'u artırmalıyım? |
| Yükleme bitince 504 | Sunucu adı | Server timeout: sunucu işlemi bitirip yanıt vermeden süre doldu | 504 Gateway Timeout alıyorum; hangi timeout'u kontrol etmeliyim? |
| 502 | Sunucu adı | Kurum Servisi bağlantıyı erken kapatıyor ya da geçersiz yanıt veriyor | 502 Bad Gateway alıyorum; olası nedenler nelerdir? |
| Çok yavaş, sonra zaman aşımı | - | Bandwidth Limitation aksiyonundaki Upload limit ya da hat kapasitesi | Bant genişliği sınırlaması (download / upload) yapabilir miyim? |
| 403 | TR7 | Bot/DDoS (L7 DDoS Protection) ya da Quarantine engeli | Meşru kullanıcılar engelleniyor; hangi kuralın engellediğini nasıl bulurum? |
Kesin kurallar:
- HTTP logs'taki Backend Service değeri, istek için bir Kurum Servisi seçilmediyse TR7, yanıt önbellekten verildiyse Cache, seçildiyse o Kurum Servisinin adıdır. 502 ve 504'ü TR7 üretir ama kayıtta sunucunun adı yazılır.
- Buffer Size(kB) (varsayılan 128 kB) dosya boyutunu sınırlamaz; gövde tampondan akarak Kurum Servisine geçer (Buffer size ne işe yarar; ne zaman değiştirmeliyim?).
- WAF varsayılan kuralında Raw Body Size aralığı 1 – 268.435.456 bayttır (256 MiB). Allowed Upload Mime Types hazır listesinde octet-stream, PDF, düz metin, CSV, JSON, ZIP, JPEG, PNG, GIF, WebP, SVG, DOCX, XLSX ve PPTX bulunur; listede olmayan bir dosya türü (ör. MP4, eski DOC ya da XLS) Blocking modunda engellenir.
- WAF açıkken Wait for body for a time seçili değilse (varsayılan) istek gövdesi tampona alınarak beklenir; bu bekleme HTTP Request Timeout süresine tabidir. Seçiliyse gövde en fazla Time to Wait Body süresi (varsayılan 300 ms) beklenir.
Nereden İzlenir?
| Ekran | Yol | Ne gösterir |
|---|---|---|
| HTTP Logs | Load Balancer vServices → vService → Logs & Tracking | Durum kodu, Backend service, önizlemede Size Info (yüklenen boyut) |
| Debug Mode Logs | Aynı sekmede (vService Debug mode'dayken) | Termination state ve Security action |
| WAF Event Logs | WAF-Protected vServices → vService → Event Logs | WAF ihlalinin türü ve ilgili kural |
| Request Body Limits | WAF Management → Inspection & Blocking | WAF'ın gövdeyi işleme ve bekleme ayarları |
Nasıl Teşhis Edilir?
- Hatanın durum kodu ve anı (yükleme sırasında mı, bittikten sonra mı) belirlenir.
- Left Monitor Panel → Load Balancer vServices → vService → Logs & Tracking → HTTP Logs açılır; kaydın Backend Service değerine ve önizlemedeki Size Info değerine bakılır.
- Durum 408, 502 ya da 504 ise ya da değer TR7 ise HTTP vService'in Status alanı Debug mode yapılır, yükleme tekrarlanır ve Debug mode logs'ta Termination State ile Security action okunur:
During request · Client timeout408'i,During response headers · Server timeout504'ü gösterir (Bir isteğin neden başarısız olduğunu loglardan nasıl anlarım (termination state)?). Debug mode da istek gövdesini tampona aldığından inceleme bitince Status yeniden Enabled yapılır. - WAF engeliyse WAF-Protected vServices → vService → Event Logs'ta ihlal türü okunur; Request Body Limits kartı ile Page Types altındaki RAW ve Form kısıtları incelenir.
- vService'teki boyut koşullu Block aksiyonları, atanmış Timeouts profili ve bant genişliği ayarları kontrol edilir.
- Değer bir sunucu adıysa ve Termination state
Normalise yanıtı uygulama üretmiştir; web sunucusu ve uygulama logları incelenir.
Sık Karıştırılan Noktalar
- "Buffer size(kB) yükleme sınırıdır." Gövde tampondan akarak geçer; Buffer size(kB) dosya boyutunu sınırlamaz.
- "WAF Learning modundayken geçen yüklemeler Blocking'de de geçer." Yapısal kısıtlar (boyut, dosya türü) Blocking modunda uygulanır; geçiş öncesinde Event Logs'taki ihlaller incelenir.
- "Content-Length koşulu bütün yüklemeleri yakalar." Parçalı (chunked) gönderilen gövdelerde Content-Length başlığı yoktur.
- "Server timeout'u bütün vService'lerde büyütmek yeterlidir." Uzun işlemler için ayrı bir Timeouts profili tanımlanıp yalnızca ilgili vService'e atanır (Uzun süren işlemlerde (rapor, dosya yükleme) istek neden yarıda kesiliyor; hangi timeout'u artırmalıyım?).
Dokümantasyonda nasıl yapılır
