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
LoadModule
yö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ı
LogLevel
artık her modül ve her dizin için yapılandırılabilmektedir.debug
log 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
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ı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_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.
- TLS-SRP için destek (2.4.4 itibariyle kullanılabilir).
mod_proxy
ProxyPass
yönergesi birLocation
veyaLocationMatch
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.
- 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_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çinRewriteRule
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.- 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çinLDAPConnectionPoolTTL
,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çinLDAPLibraryDebug
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.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_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ındamod_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
veopen_logs
kancaları arasında çalışmak üzere eklendi. Ayrıca,httpd
'ye-t
seçeneği verildiğindetest_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. Temelopen_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 bircache_status
kancası içeriyor. Öntanımlı gerçeklenim, yanıta istemlik birX-Cache
veX-Cache-Detail
ekleyebilmektedir.
Geliştirici belgeleri API değişikliklerinin ayrıntılı bir listesini içermektedir.