Web Sunucusunda Keep-Alive Ayarı Nasıl Yapılır?

Web sunucusunda keep-alive ayarı, modern web sitelerinin performansını önemli ölçüde artıran bir özelliktir.

Web sunucusunda keep-alive ayarı, modern web sitelerinin performansını önemli ölçüde artıran bir özelliktir. HTTP bağlantılarını yeniden kurmak yerine mevcut bağlantıyı yeniden kullanarak sunucu kaynaklarını verimli kılar. Bu ayar, özellikle yüksek trafikli sitelerde gecikmeleri azaltır ve kullanıcı deneyimini iyileştirir. Bu makalede, web sunucusunda keep-alive ayarının nasıl yapılacağını adım adım ele alacağız. Apache ve Nginx gibi popüler sunucular için pratik rehberler sunarak, kurumsal ortamlarınızda kolayca uygulayabileceğiniz yöntemleri paylaşacağız.

Web Sunucusunda Keep-Alive Ayarının Temelleri

Keep-alive, HTTP/1.1 protokolünde varsayılan olarak etkin olsa da, sunucu konfigürasyonunda doğru ayarlanması kritik öneme sahiptir. Bu özellik, bir istemci ile sunucu arasındaki TCP bağlantısını belirli bir süre açık tutar ve birden fazla istek için yeniden kullanım sağlar. Sonuç olarak, her sayfa yüklemesinde yeni bir bağlantı açma maliyetini ortadan kaldırır. Web sunucusunda keep-alive ayarını optimize etmek, bağlantı havuzu boyutunu, zaman aşımı değerlerini ve maksimum istek sayısını doğru belirlemeyi gerektirir. Örneğin, timeout değeri 5-15 saniye arasında tutulmalı, aşırı uzun süreler sunucu belleğini şişirebilir.

Uygulamada, keep-alive etkinleştirildiğinde sunucu loglarında “Keep-Alive” başlığı görünür hale gelir. Bu ayarı test etmek için curl komutuyla “curl -I -H ‘Connection: keep-alive’ http://ornek.com” şeklinde sorgu yapabilirsiniz. Kurumsal projelerde, bu ayar trafiğe göre dinamik olarak ölçeklendirilmelidir. Ayrıca, HTTPS bağlantılarında keep-alive, TLS el sıkışma sürelerini kısaltarak güvenlik ve hızı dengeler. Keep-alive’i devre dışı bırakmak istenirse, “Connection: close” başlığı eklenir, ancak bu nadiren önerilir.

Apache’de Web Sunucusunda Keep-Alive Ayarı

Apache HTTP Server’da web sunucusunda keep-alive ayarı, httpd.conf veya sites-available konfigürasyon dosyalarında yapılır. Öncelikle mod_headers ve mod_keepalive modüllerinin yüklü olduğundan emin olun. Ana direktifler KeepAlive On, MaxKeepAliveRequests 100 ve KeepAliveTimeout 5 şeklinde belirlenir. Bu değerler, saniyede yüzlerce istek alan siteler için idealdir. Değişiklikleri kaydettikten sonra “apachectl configtest” ile sintaks kontrolü yapın ve “systemctl restart apache2” ile yeniden başlatın.

Konfigürasyon Adımları

Apache konfigürasyonunda VirtualHost bloğu içine şu satırları ekleyin: KeepAlive On, KeepAliveTimeout 5, MaxKeepAliveRequests 150. Bu ayarlar, bağlantının 5 saniye sonra kapanmasını ve her bağlantıda maksimum 150 istek işlenmesini sağlar. Yüksek trafik için MaxKeepAliveRequests’i 200’e çıkarabilirsiniz, ancak bellek kullanımını izleyin. Değişiklik sonrası log dosyalarını (/var/log/apache2/access.log) kontrol ederek etkinliği doğrulayın. Bu adımlar, kurumsal sunucularda standart prosedürdür ve downtime’ı minimuma indirir.

Performans İzleme

Ayarı uyguladıktan sonra Apache mod_status ile bağlantı sayısını izleyin. “curl http://localhost/server-status?auto” komutu keep-alive bağlantılarını gösterir. Eğer bağlantılar birikiyorsa timeout’u kısaltın. Araçlar gibi ApacheBench (ab -n 1000 -c 10 http://site.com) ile test edin; keep-alive etkin iken istek/saniye oranı %30-50 artar. Bu verilerle ayarı ince ayarlayarak sunucu verimliliğini maksimize edin.

Nginx’de Web Sunucusunda Keep-Alive Ayarı

Nginx’te web sunucusunda keep-alive ayarı, nginx.conf dosyasının http, server veya location bloklarında keepalive_timeout direktifiyle yönetilir. Varsayılan değer 75 saniyedir, ancak kurumsal kullanımda 15-30 saniyeye indirin. keepalive_requests 100; ve keepalive_disable none; ekleyin. Upstream sunucular için proxy_http_version 1.1; ve proxy_set_header Connection “”; zorunludur. Konfigürasyonu “nginx -t” ile test edip “systemctl reload nginx” ile uygulayın, restart’a gerek kalmaz.

Detaylı Konfigürasyon Örneği

nginx.conf’ta http bloğuna ekleyin: keepalive_timeout 20s 20s; keepalive_requests 200;. Server bloğunda location / { keepalive_disable msie6; } ile tarayıcı uyumluluğunu sağlayın. Backend proxy’ler için upstream blokunda keepalive 32; kullanın. Bu, bağlantı havuzunu 32’ye çıkarır ve veritabanı sorgularını hızlandırır. Değişiklikler sonrası “nginx -s reload” ile sıfır kesintiyle güncelleyin. Loglarda ($http_connection) keep-alive trafiğini filtreleyin.

Test ve Ayarlama

Nginx için wrk veya siege araçlarıyla yük testi yapın: wrk -t12 -c400 -d30s http://site.com. Keep-alive etkinliğinde throughput artışı gözlemlenir. Eğer hatalar oluşursa, keepalive_timeout’u 10s’ye düşürün. Prometheus ve Grafana entegrasyonuyla gerçek zamanlı izleme kurun; CPU ve bağlantı metriklerini takip edin. Bu yöntemler, ölçeklenebilir kurumsal altyapılarda vazgeçilmezdir.

Sonuç olarak, web sunucusunda keep-alive ayarı doğru yapıldığında sunucu performansı belirgin şekilde yükselir. Apache ve Nginx için verdiğimiz adımları takip ederek, trafiğinize özel optimizasyonlar uygulayın. Düzenli izleme ve testlerle ayarları güncel tutun; bu sayede siteleriniz hızlı, güvenilir ve kullanıcı dostu kalacaktır. Uygulamadan önce yedek alın ve staging ortamında deneyin.

Kategori: Web Sunucu
Yazar: Lorem
çerik: 582 kelime
Okuma Süresi: 4 dakika
Zaman: Bugün
Yayım: 24-02-2026
Güncelleme: 24-02-2026