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.