Apache HTTP Sunucusu 2.4'te Yeni olan Özellikler

Bu belgede Apache HTTP Sunucusunun 2.2 ve 2.4 sürümleri arasındaki başlıca farklara değinilmiştir. 2.0 sürümüne göre yeni özellikler için Apache 2.2’de Yeni olan Özellikler belgesine bakınız.

Çekirdekteki Gelişmeler
Milisaniye cinsinden KeepAliveTimeout
KeepAliveTimeout'u milisaniye cinsinden belirtmek artık mümkündür.
Yüklenebilir MPM'ler
Çok sayıda MPM artık yüklenebilir modül olarak derlenebilmektedir. Kullanılacak MPM'in seçimi çalışma anında yapılabilmektedir.
Modul bazında ve dizin bazına LogLevel yapılandırması
LogLevel artık her modül ve her dizin için yapılandırılabilmektedir. debug log seviyesinin üstüne trace1'den trace8'e kadar yeni log seviyeleri eklendi.
Event MPM
Event MPM artık deneysel değil, ancak tam olarak desteklenmiyor.
Eşzamansıza destek
MPM'leri ve platformları desteklemek için eşzamansız okuma/yazmaya destek iyileştirildi.
İstek bazında yapılandırma bölümleri
<If> bölümleri artık HTTP isteklerine dayalı olarak yapılandırılabilmektedir.
Genel amaçlı ifade çözümleyici
Yeni ifade çözümleyici SetEnvIfExpr, RewriteCond, Header, If ve benzeri yönergelerde ortak bir sözdizimi kullanarak karmaşık durumlar belirtmeyi mümkün kılmaktadır.
Azaltılmış bellek kullanımı
Bir çok yeni özelliğe karşın, 2.4.x'te 2.2.x'e nazaran bellek kullanımı azaltılmıştır.
NameVirtualHost yönergesi
Artık gerekmiyor ve kullanımı önerilmiyor.
Yeni Modüller
mod_allowmethods
Kimlik Doğrulama ve Yetkilendirme ile etkileşmeyen belli HTTP yöntemlerine sınır koymak için yeni bir modül.
mod_buffer
Girdi ve çıktı süzgeç yığıtlarına tampon bellek sağlar.
mod_data
Yanıt gövdesini bir RFC2397 veri URL'sine dönüştürür.
mod_lua
Küçük iş mantıksal işlevleri ve yapılandırması için httpd içine Lua dilini gömer.
mod_proxy_express
mod_proxy için devingen olarak yapılandırılmış tam tersinir vekiller sağlar.
mod_proxy_fcgi
mod_proxy için FastCGI Protokolü sağlayıcısı
mod_proxy_scgi
mod_proxy için SCGI Protokolü sağlayıcısı
mod_ratelimit
İstemciler için band genişliği oranında sınırlama sağlar.
mod_reflector
Çıktı süzgeci yığıtı üzerinden bir yanıt olarak bir istek gövdesinin yansısını sağlar.
mod_remoteip
İstek başlıklarında bir yük dengeleyici veya bir vekil tarafından sunulan IP adres listeli bir istek için görünen istemci IP adresi ve konak adını değiştirir.
mod_reqtimeout
Alım istekleri için zaman aşımını ve asgari veri oranını belirler.
mod_request
Kullanılabilir HTTP istek gövdelerini yapmak ve elde etmek için Süzgeçleri sağlar.
mod_slotmem_shm
Yuva temelli bir paylaşımlı bellek sağlayıcı sağlar (scoreboard olarak da bilinir).
mod_log_debug
İstek işlemlerinin farklı aşamalarına özelleştirilebilir hata ayıklama günlüğü eklenmesini sağlar.
mod_xml2enc
Başta bir üçüncü parti modüldü. libxml2 temelli süzgeç modüllerinde i18n'i destekler.
mod_proxy_html
Başta bir üçüncü parti modüldü. Arka plandaki sağlayıcının vekil istemcileri için geçersiz URL'ler ürettiği tersinir vekil durumlarında HTML bağlarının düzeltilmesini sağlar.
Modüllerdeki Gelişmeler
mod_ssl
mod_ssl bir istemci sertifikasının doğrulama durumunu sınamak için bir OCSP sunucusunu kullanmak üzere yapılandırılabilir. Öntanımlı yanıtlayıcı, istemci sertifikasının kendisinde tasarlanmış yanıtlayıcının tercih edilip edilmeyeceği kararına bağlı olarak yapılandırılabilir.
mod_ssl, ayrıca, sunucunun istemciyle anlaşma sırasında kendi sertifikasının OCSP doğrulamasını umursamazca sağlayıp aktardığı durumda OCSP zımbalamasını da destekler.
mod_ssl, sunucular arasında SSL Oturumu verisini memcached üzerinden paylaşmak üzere yapılandırılabilir.
mod_proxy
ProxyPass yönergesi bir Location veya LocationMatch bloku içinde en verimli şekilde yapılandırılabilir ve büyük sayıların varlığı durumunda geleneksel iki değiştirgeli sözdiziminin de üzerinde belirgin bir başarım artışı sağlar.
mod_proxy_balancer
Dengeleme yöneticisi üzerinden BalancerMembers için daha fazla çalışma anı yapılandırması
Çalışma anında dengeleme yöneticisi üzerinden başka BalancerMembers eklenebilir.
Çalışma anı yapılandırmasına yönelik dengeleyici değiştirgeleri
BalancerMembers için 'Drain' değeri belirtilebilir; böylece sadece mevcut yapışık oturumlara yanıt verirler ve bunların güzellikle hattan alınması mümkün olur.
Balancer ayarları sunucu yeniden başlatılssa bile kalıcı olabilir.
mod_cache
mod_cache artık HEAD isteklerini arabellekleyebiliyor.
Mümkün olduğunda, mod_cache yönergeleri sunucu bazında değil, dizin bazında belirtilebiliyor.
Arabellekli URL'lerin temel URL'si özelleştirilebiliyor; böylece arabelleğin bir bölümü aynı uç URL önekini paylaşabiliyor.
mod_cache, ardalanda bir sağlayıcının olmadığı durumda (5xx hatası), arabelleklenmiş bayat içeriği sunabiliyor.
mod_cache artık bir X-Cache başlığına bir HIT/MISS/REVALIDATE yerleştirebiliyor.
mod_include
Bir hata durumunda öntanımlı hata dizgisi yerine bir hata sayfası sunmayı sağlayan 'onerror' özniteliği için 'include' elemanı içinde destek.
mod_cgi, mod_include, mod_isapi, ...
Başlıkların ortam değişkenlerine dönüşümü, başlık zerki yoluyla bazı olası karşı-site-betik saldırılarının hafifletilmesinden önce daha hızlı ve doğru yapılmaktadır. Geçersiz karakterler (altçizgiler dahil) içeren başlıklar artık sessizce bırakılmaktadır.Apache'deki Ortam değişkenleri, böyle başlıkları gerektiren bozulmuş meşru istemcilerin çevresinden dolanabilen göstericilere sahiptir. (Bu durum, bu değişkenleri kullanan tüm modülleri etkiler.)
mod_authz_core Yetkilendirme Kuralları Taşıyıcıları
Gelişkin yetkilendirme kuralları artık Require yönergesi ve RequireAll gibi ilgili taşıyıcı yönergeler kullanılarak belirtilebilmektedir.
mod_info
mod_info önceden çözümlenmiş yapılandırmayı artık sunucunun başlatılması sırasında standart çıktıya dökümleyebilmektedir.
mod_rewrite
mod_rewrite bildik yeniden yazma senaryolarını basitleştirmek için RewriteRule yönergesine [QSD] (Query String Discard=sorgu dizgisini iptal) ve [END] seçeneklerini sağlamaktadır.
mod_ldap, mod_authnz_ldap
mod_authnz_ldap kümelenmiş gruplara destek sağlar.
mod_ldap zaman aşımlarını işleme sokabilmek için LDAPConnectionPoolTTL, LDAPTimeout ve birtakım başka geliştirmeler sahiptir. Özellikle, bir LDAP sunucusunun boşta kalmış bağlantılarını bıraktıran bir durumsal güvenlik duvarı varlığında gerekli ayarlamaları yapmak için kullanışlıdır.
mod_ldap, artık, LDAP araç kiti kullanarak sağlanan hata ayıklama bilgisini günlüklemek için LDAPLibraryDebug yönergesini içermektedir.
Programdaki Gelişmeler
fcgistarter
FastCGI artalan sunucusu başlatma aracı
htcacheclean
Arabellekli URL'ler, istenirse metadata'yı da dahil ederek listelenebilmektedir.
Bazı URL'ler arabellekten tek tek silinebilmektedir.
Dosya boyutları belirtilen blok boyutuna yukarı doğru yuvarlanabilmekte, böylece dosya boyutu sınırları diskteki gerçek boyutlarla daha iyi eşlenebilmektedir.
Arabellek boyutu artık, diskteki dosyaların boyutuna göre bir sınıra ek olarak veya bunun yerine dosya düğümü sayısı ile sınırlanabilmektedir.
Modül Geliştirici Değişiklikleri
Yapılandırma Denetleme Kancası Eklendi
Yeni bir kanca, check_config kancası, pre_config ve open_logs kancaları arasında çalışmak üzere eklendi. Ayrıca, httpd'ye -t seçeneği verildiğinde test_config kancasından önce çalışır. check_config kancası, modüllerin karşılıklı bağımlı yapılandırma yönergesi değerlerini yeniden yoklamasını ve iletiler konsola hala günlüklenebiliyorken bunların ayarlanabilmesini sağlar. Temel open_logs kanca işlevi konsol çıktısını hata günlüğüne yönlendirmeden önce hatalı yapılandırma sorunlarına karşı kullanıcı uyarılabilir.
İfade Çözümleyici Eklendi
Artık genel amaçlı bir ifade çözümleyicimiz var. API ap_expr.h içinde incelenebilir. Evvelce mod_ssl içinde gerçeklenmiş olan ifade çözümleyiciden esinlenildi.
Yetkilendirme Kuralları Taşıyıcıları
Yetkilendirme modülleri, RequireAll gibi gelişmiş yetkilendirme kuralı taşıyıcılarını desteklemek için ap_register_auth_provider() üzerinden artık bir sağlayıcı olarak çalıştırılabilmektedir.
Küçük Nesne Arabellekleme Arayüzü
ap_socache.h, evvelki mod_ssl oturum arabelleği gerçeklenimine dayalı olarak küçük veri nesnelerini arabelleklemek için sağlayıcı temelli bir arayüz ortaya koyar. Paylaşımlı bellek çevrimsel tamponu kullanan sağlayıcılar, disk bazlı dbm dosyaları ve memcache ile dağıtılan arabellekler şu an desteklenmektedir.
Arabellek Durum Kancası Eklendi
mod_cache modülü artık, arabellekleme kararı bilinir olduğunda çağrılan yeni bir cache_status kancası içeriyor. Öntanımlı gerçeklenim, yanıta istemlik bir X-Cache ve X-Cache-Detail ekleyebilmektedir.

Geliştirici belgeleri API değişikliklerinin ayrıntılı bir listesini içermektedir.