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
- Çalışma anında yüklenebilen MPM'ler
- Çok sayıda MPM artık yüklenebilir
modül olarak derlenebilmektedir. Kullanılacak MPM'in seçimi
çalışma anında
LoadModuleyönergesi üzerinden yapılabilmektedir. - 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.
- Modul bazında ve dizin bazına LogLevel yapılandırması
LogLevelartık her modül ve her dizin için yapılandırılabilmektedir.debuglog seviyesinin üstünetrace1'dentrace8'e kadar yeni log seviyeleri eklendi.- İstek bazında yapılandırma bölümleri
<If>,<ElseIf>, ve<Else>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. - Milisaniye cinsinden KeepAliveTimeout
KeepAliveTimeoutmilisaniye cinsinden belirtmek artık mümkündür.- NameVirtualHost yönergesi
- Artık gerekmemekte ve kullanımı önerilmemektedir.
- Yapılandırma geçersizleştirme
- Yeni
AllowOverrideListyönergesi.htaccessdosyalarında kullanılabilen yönergelerde daha ince ayarlara izin vermektedir. - Yapılandırma dosyası değişkenleri
- Yapılandırmada değişkenler
Defineyönergesi ile tanımlanabilmekte, böylece aynı değer yapılandırmada bir çok yerde kullanılıyorsa daha temiz bir görünüm elde edilebilmektedir. - 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.
Yeni Modüller
mod_proxy_fcgimod_proxyiçin FastCGI Protokolü sağlayıcısımod_proxy_scgimod_proxyiçin SCGI Protokolü sağlayıcısımod_proxy_expressmod_proxyiçin devingen olarak yapılandırılmış tam tersinir vekiller 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_heartmonitor,mod_lbmethod_heartbeatmod_proxy_balancermodülünün arka sunuculardaki etkin bağlantı sayısı üzerindeki yük dengeleme kararlarına dayalı işlem yapmasını sağlar.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_sedmod_substitutemodülünün geliştirilmiş hali olup yanıt gövdesinin sed'in tüm gücü ile yeniden düzenlenebilmesini sağlar.mod_auth_form- Formlara dayalı kimlik kanıtlamayı etkinleştirir.
mod_session- Çerezleri ve veritabanı deposunu kullanarak istemciler için oturum durumunun saklanmasını etkinleştirir.
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_lua- Küçük iş mantıksal işlevleri ve yapılandırması için httpd içine Lua dilini gömer.
mod_log_debug- İstek işlemlerinin farklı aşamalarına özelleştirilebilir hata ayıklama günlüğü eklenmesini sağlar.
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_ratelimit- İstemciler için band genişliği oranında sınırlama sağlar.
mod_request- Kullanılabilir HTTP istek gövdelerini yapmak ve elde etmek için Süzgeçleri sağlar.
mod_reflector- Çıktı süzgeci yığıtı üzerinden bir yanıt olarak bir istek gövdesinin yansısını sağlar.
mod_slotmem_shm- Yuva temelli bir paylaşımlı bellek sağlayıcı sağlar (scoreboard olarak da bilinir).
mod_xml2enc- Başta bir üçüncü parti modüldü. libxml2 temelli süzgeç modüllerinde i18n'i destekler.
mod_macro(2.4.5'den itibaren kullanılabilir)- Yapılandırma dosyalarında makro kullanımını sağlar.
mod_proxy_wstunnel(2.4.5'den itibaren kullanılabilir)- Web-socket tünelleri için destek.
mod_authnz_fcgi(2.4.10'dan itibaren kullanılabilir)- Kimlik kanıtlama ve/veya istemcileri yetkilendirmek için FastCGI yetkilendirme uygulamalarını etkinleştirir.
mod_http2(2.4.17'den itibaren kullanılabilir)- HTTP/2 aktarım katmanı desteği.
mod_proxy_hcheck(2.4.21'den itibaren kullanılabilir)- Uzak vekil artuç sunucuları için bağımsız özdevinimli sağlık sınamalarını destekler.
Modüllerdeki Gelişmeler
mod_sslmod_sslbir 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.- RSA ve DSA'ya ek olarak EC anahtarları da artık desteklenmektedir.
- TLS-SRP için destek (2.4.4 itibariyle kullanılabilir).
mod_proxyProxyPassyönergesi birLocationveyaLocationMatchbloku 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.- Vekil istekleri için kullanılan kaynak adresi artık yapılandırılabilmektedir.
- Artalanda Unix alan soketleri için destek (2.4.7 itibariyle kullanılabilir).
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_cachemod_cacheCACHE süzgeci, arabellekleme üzerinde daha hassas denetim sağlamak için istenirse süzgeç zincirinin belli bir noktasına yerleştirilebilmektedir.mod_cacheartık HEAD isteklerini arabellekleyebiliyor.- Mümkün olduğunda,
mod_cacheyö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_cacheartı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_coreYetkilendirme Kuralları Taşıyıcıları- Gelişkin yetkilendirme kuralları artık
Requireyönergesi ve<RequireAll>gibi ilgili taşıyıcı yönergeler kullanılarak belirtilebilmektedir. mod_rewritemod_rewritebildik yeniden yazma senaryolarını basitleştirmek içinRewriteRuleyönergesine[QSD](Query String Discard=sorgu dizgisini iptal) ve[END]seçeneklerini sağlamaktadır.RewriteCondiçinde karmaşık mantıksal ifadeler kullanımını mümkün kılmaktadır.- SQL sorgularının
RewriteMapişlevleri olarak kullanılması sağlanmıştır. mod_ldap,mod_authnz_ldapmod_authnz_ldapkümelenmiş gruplara destek sağlar.mod_ldapzaman aşımlarını işleme sokabilmek içinLDAPConnectionPoolTTL,LDAPTimeoutve 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çinLDAPLibraryDebugyönergesini içermektedir.mod_infomod_infoönceden çözümlenmiş yapılandırmayı artık sunucunun başlatılması sırasında standart çıktıya dökümleyebilmektedir.mod_auth_basic- Temel kimlik kanıtlamayı taklit eden yeni temel mekanizma (2.4.5 itibariyle kullanılabilmektedir).
Programlardaki Gelişmeler
fcgistarter- Yeni 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.
rotatelogs- Artık geçerli günlük dosyasına bir bağ oluşturulabiliyor.
- Artık özel bir döndürme sonrası betiği çalıştırılabiliyor.
htpasswd,htdbm- Bcrypt algoritması için destek (2.4.4 itibariyle kullanılabilmektedir).
Belgelendirme
- mod_rewrite
mod_rewritebelgeleri, yeniden düzenlenerek, genel kullanıma ve örneklere odaklı olarak ve diğer çözümlerin hangi durumlarda daha uygun olduğu da gösterilerek hemen hemen tamamen yeniden yazıldı. Yeniden Yazma Kılavuzu artık bir sayfa olmaktan çıkıp, çok daha ayrıntılı ve daha iyi düzenlenmiş bir bölüm haline geldi.- mod_ssl
mod_sslbelgeleri, evvelki teknik ayrıntılara ek olarak başlarken seviyesinde daha fazla örnekle büyük oranda genişletildi.- Önbellek Kullanım Kılavuzu
- Önbellek Kullanım Kılavuzu
mod_cachetarafından sağlanan RFC2616 HTTP/1.1 önbellekleme özellikleri arasıda daha iyi ayrım yapılabilmesi için ve socache arayüzü ile sağlanan soysal anahtar/değer önbelleklemesi yanındamod_file_cachegibi mekanizmalarla sağlanan özelleştirilebilir arabelleklemeyi de kapsamak üzere yeniden yazıldı.
Modül Geliştirici Değişiklikleri
- Yapılandırma Denetleme Kancası Eklendi
- Yeni bir kanca,
check_configkancası,pre_configveopen_logskancaları arasında çalışmak üzere eklendi. Ayrıca,httpd'ye-tseçeneği verildiğindetest_configkancasından önce çalışır.check_configkancası, 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. Temelopen_logskanca 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_ssliç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_ssloturum 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_cachemodülü artık, arabellekleme kararı bilinir olduğunda çağrılan yeni bircache_statuskancası içeriyor. Öntanımlı gerçeklenim, yanıta istemlik birX-CacheveX-Cache-Detailekleyebilmektedir.
Geliştirici belgeleri API değişikliklerinin ayrıntılı bir listesini içermektedir.


