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 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ı
- 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.
- İ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
- KeepAliveTimeout milisaniye
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 AllowOverrideList
yönergesi
.htaccess
dosyalarında kullanılabilen
yönergelerde daha ince ayarlara izin vermektedir.
- Yapılandırma dosyası değişkenleri
- Yapılandırmada değişkenler Define yö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_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_proxy_express
- mod_proxy iç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_heartbeat
- mod_proxy_balancer modü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_sed
- mod_substitute modü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ıtlamaya izin verir.
- mod_session
- Çerezleri ve veritabanı deposunu kullanarak istemciler için oturum
durumunun saklanmasını sağlar.
- 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ü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.
- RSA ve DSA'ya ek olarak EC anahtarları da artık desteklenmektedir.
- 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.
- Vekil istekleri için kullanılan kaynak adresi artık
yapılandırılabilmektedir.
- 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 CACHE süzgeci, arabellekleme üzerinde daha
hassas denetim sağlamak için istenirse süzgeç zincirinin belli bir
noktasına yerleştirilebilmektedir.
- 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_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.
- RewriteCond içinde
karmaşık mantıksal ifadeler kullanımını mümkün kılmaktadır.
- llows to use SQL queries as SQL sorgularının RewriteMap işlevleri olarak
kullanılması sağlanmıştı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.
- 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.
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.
Belgelendirme
- mod_rewrite
- mod_rewrite belgeleri, 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_ssl belgeleri, 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_cache tarafı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ında mod_file_cache
gibi 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_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.