Timeouts profilindeki değerler (HTTP Keepalive Timeout, HTTP Request Timeout, Connect, Server, Client, Queue, Tunnel(Websocket) Timeout, Client FIN, Server FIN) ne anlama gelir?
Kısa cevap
Timeouts profili, bağlantının her aşaması için bir süre sınırı tanımlar: istemcinin istek göndermesi, Kurum Servisine bağlanma, iki taraftaki veri akışı, kuyrukta bekleme, WebSocket tüneli ve bağlantının kapanması. Değerler saniyedir (0–60.000); varsayılanlar HTTP Keepalive Timeout 120, HTTP Request Timeout 30, Connect Timeout 20, Server Timeout 90, Client Timeout 90, Queue Timeout 60, Tunnel(Websocket) Timeout 120, Client FIN 3 ve Server FIN 6 saniyedir. Profil atanmamış vService'ler bu varsayılanlarla çalışır; değişiklikler açık bağlantılar kopmadan uygulanır.
Nasıl Çalışır?
Bir istek, istemciden Kurum Servisine ve geri dönerken birkaç aşamadan geçer. Her aşamanın kendi süre sınırı vardır; süre dolduğunda TR7 o aşamadaki bağlantıyı ya da isteği sonlandırır. Server timeout ve Client timeout toplam süreyi değil, iki veri parçası arasındaki en uzun sessizliği sınırlar: veri aktığı sürece bağlantı kesilmez.
| Alan | Varsayılan | Neyi sınırlar | Süre dolunca |
|---|---|---|---|
| HTTP Keepalive Timeout | 120 sn | Bir yanıttan sonra istemcinin aynı bağlantıda yeni istek göndermesi için beklenen süre | Boştaki istemci bağlantısı kapatılır |
| HTTP Request Timeout | 30 sn | İsteğin ilk satırının ve başlıklarının tamamen alınması (gövde dahil değildir; WAF etkin vService'te (Wait for Body for a Time işaretli değilken) ya da Debug Mode açıkken gövde de dahildir) | İstek reddedilir |
| Connect Timeout | 20 sn | Kurum Servisine bağlantı kurulması | Deneme başarısız sayılır; Max. Failed Connection Retries kadar yeniden denenir |
| Server Timeout | 90 sn | Kurum Servisi tarafında iki veri parçası arasındaki en uzun sessizlik | Yanıt gelmeden dolarsa istemciye 504 |
| Client Timeout | 90 sn | İstemci tarafında iki veri parçası arasındaki en uzun sessizlik | İstemci bağlantısı kapatılır |
| Queue Timeout | 60 sn | İsteğin Kurum Servisi kuyruğunda bekleyebileceği en uzun süre | İstemciye 503 |
| Tunnel(Websocket) Timeout | 120 sn | Tünele dönüşmüş (ör. WebSocket) bağlantıda iki yönde de veri yokken açık kalma süresi; tünel kurulunca Client timeout ve Server timeout yerine geçer | Tünel kapatılır |
| Client FIN | 3 sn | İstemci kapanışı başlattıktan sonra yarı kapalı bağlantının bekletilmesi | Bağlantı kapatılır |
| Server FIN | 6 sn | Kurum Servisi kapanışı başlattıktan sonra yarı kapalı bağlantının bekletilmesi | Bağlantı kapatılır |
TR7'de Timeouts Profili
- Nerede: Profil Load Balancer → Profiles → Timeouts ekranında oluşturulur (nasıl eklenir) ve vService'in Details panelindeki Timeout kutusunda seçilir (vService'e nasıl eklenir). Formdaki alanlar boş gelir; boş bırakılan alan varsayılanı kullanır (profil ekleme formu).
- vService tipi: HTTP ve L7 TCP. L7 TCP'de HTTP Keepalive Timeout ve HTTP Request Timeout uygulanmaz; Network vService'te Timeout kutusu yoktur (zaman aşımı değerlerinin kapsamı).
- Varsayılan: Kutu kapatılırsa ya da kullanılan profil silinirse vService yukarıdaki varsayılanlarla çalışır (Delete).
- 0 değeri: Süre sınırını kaldırır (zaman aşımı değerlerinin kapsamı); boşta kalan bağlantılar kapanmadığı için önerilmez.
- Değişikliğin etkisi: Timeouts alanları vService'i yeniden başlatmaz; kayıt açık bağlantılar kopmadan uygulanır. Profil birden çok vService'te kullanılıyorsa değişiklik hepsine yansır; önce profilin önizlemesindeki Used in sekmesi kontrol edilir (Used in sekmesi). Cluster'da varsayılan auto-sync ile eş cihaza da gönderilir; Manual Sync Mode açıksa Synchronize ile gönderilir.
- Tarpit: Connect timeout, isteği bir süre bekletip reddeden Tarpit davranışının bekletme süresini de belirler.
- İzleme: Hangi sürenin dolduğu Debug Mode Logs ekranındaki Termination State kolonunda görülür (ör. Client timeout, Server timeout ve aşaması); Debug Mode Logs yalnızca HTTP vService Debug mode durumundayken üretilir.
- WEB-CLI:
lb timeouts add name rapor-servisi --serverTimeout 300ile profil oluşturulur,lb service update id <vService> --timeout rapor-servisiile bağlanır (WEB-CLI örnekleri).
Sık Karıştırılan Noktalar
- "Server timeout işlemin toplam süresidir." Veri akışındaki en uzun sessizliktir; veri aktığı sürece bağlantı kesilmez.
- "HTTP request timeout yüklemeleri hiçbir zaman etkilemez." Bu süre normalde isteğin başlıklarını kapsar ve yükleme sırasındaki sessizliği Client timeout sınırlar; ancak WAF etkin vService'te (Wait for Body for a Time işaretli değilken) ve Debug Mode açıkken gövdenin alınması da bu süreye dahildir, büyük ya da yavaş yüklemeler bu sürede kesilebilir.
- "WebSocket için Client ve Server timeout artırılır." Tünel kurulduktan sonra belirleyici süre Tunnel(Websocket) timeout'tur.
- "Timeouts Network vService'te de kullanılır." Network vService'te Timeout kutusu yoktur.
- "HTTP keepalive timeout her durumda geçerlidir." HTTP TCP Multiplexing aksiyonunda Close after Every Request modu seçilirse bu süre işlevsiz kalır.
Dokümantasyonda nasıl yapılır
