Apache HTTP Sunucusu 2.2’de Yeni olan Özellikler
Bu belgede Apache HTTP Sunucusunun 2.0 ve 2.2 sürümleri arasındaki başlıca farklara değinilmiştir. 1.3 sürümüne göre yeni özellikler için Apache 2.0’da Yeni olan Özellikler belgesine bakınız.
Çekirdekteki Gelişmeler
- Authn/Authz
- Mevcut kimlik doğrulama ve yetkilendirme modüllerinin iç işleyişi
yeniden düzenlendi. Yeni
mod_authn_aliasmodülü (2.3/2.4 sürümlerinde kaldırılmıştır) belli kimlik doğrulama yapılandırmalarını büyük oranda basitleştirebilir. Bu değişikliklerin kullanıcıları ve modül yazarlarını nasıl etkilediğini öğrenmek için modül değişikliklerine ve geliştirici değişikliklerine bakabilirsiniz. - Önbellekleme
mod_cache,mod_cache_diskvemod_mem_cache(2.3/2.4 sürümlerinde kaldırılmıştır) modüllerinde büyük oranda değişikliğe gidilerek bunlar deneysel olmaktan çıkarılıp üretim amaçlı modüller haline getirildiler.mod_cache_disktarafından kullanılan disk alanınınhtcachecleantarafından düzenli aralıklarla temizlenebilmesi sağlandı.- Yapılandırma
- Öntanımlı yapılandırma basitleştirildi ve modüler bir yapıya kavuşturuldu. Sık kullanılan ortak özellikleri etkinleştirmekte kullanılan yapılandırmalar gruplanarak bunların Apache ile gelmesi ve ana sunucu yapılandırılırken yapılandırmaya kolayca eklenebilmesi sağlandı.
- Nazikçe Durdurma
prefork,workerveeventMPM’leri artıkhttpd’yigraceful-stopsinyali sayesinde nazikçe durdurabilmektedir.httpdprogramının sonlandırılmasındaki gecikmelere karşı bir önlem olarak, isteğe bağlı bir zaman aşımı belirtmeyi mümkün kılanGracefulShutdownTimeoutyönergesi sayesinde sunum sürüyor olsa bilehttpdsonlandırılabilmektedir.- Vekil Sunucu
- Yeni
mod_proxy_balancermodülü ilemod_proxyiçin yük dengeleme hizmetleri sağlanmış, yenimod_proxy_ajpmodülü ile Apache Tomcat tarafından kullanılan Apache JServ Protokolünün 1.3 sürümü için destek eklenmiştir. - Düzenli İfade Kütüphanesi Güncellemesi
- Apache, Perl uyumlu düzenli ifade
kütüphanesinin 5.0 sürümünü (PCRE) içermektedir.
configurebetiğinin--with-pcreseçeneği sayesindehttpdprogramı PCRE destekli olarak derlenebilmektedir. - Akıllı Süzme
mod_filterçıktı süzgeç zincirinin devingen olarak yapılandırılmasını sağlar. Süzgeçlerin herhangi bir istek veya yanıt başlığına veya bir ortam değişkenine dayanarak koşullu olarak yerleştirilmesini mümkün kılar ve bunu yaparken 2.0 mimarisindeki sorunlu bağımlılıklar ve sıralama sorunlarının da üstesinden gelir.- Büyük Dosya (>2GB) Desteği
httpdartık günümüzün 32 bitlik Unix sistemlerinde bulunan 2 GB’lık büyük dosyaları destekleyecek tarzda derlenebilmektedir. 2 GB’lık istek gövdelerine destek de ayrıca eklenmiştir.- Event MPM
eventMPM modülü sürekli bağlantı isteklerinin işlenmesi ve bağlantıların kabul edilmesi için ayrı bir evre kullanır. Sürekli bağlantı (keepalive) isteklerinin işlenmesi geleneksel olarak httpd’nin buna birworkeradamasını gerektirirdi. Bu adanmışworkerbağlantı zaman aşımına uğrayıncaya değin tekrar kullanılamazdı.- SQL Veritabanı Desteği
mod_dbdmodülüapr_dbdarayüzü ile birlikte, ihtiyacı olan modüllere SQL desteği sağlar. Evreli MPM’ler için bağlantı havuzlamasını destekler.
Modüllerdeki Gelişmeler
- Authn/Authz
- Kimlik Doğrulama, Yetkilendirme ve Erişim Denetimi ile ilgili
modüller özetli kimlik doğrulamasına daha iyi destek sağlamak
amacıyla yeniden isimlendirildi. Örneğin,
mod_authmodülü şimdimod_auth_basicvemod_authn_filediye iki modüle bölünmüştür.;mod_auth_dbmmodülünün ismimod_authn_dbmvemod_accessmodülünün ismi demod_authz_hostolarak değiştirilmiştir. Ayrıca, belli kimlik doğrulama yapılandırmalarını basitleştirmek üzeremod_authn_aliasdiye yeni bir modül vardır (2.3/2.4 sürümlerinde kaldırılmıştır). mod_authnz_ldap- Bu modül 2.0 sürümü
mod_auth_ldapmodülünün 2.2Authn/Authzarayüzüne bir uyarlamasıdır.Requireyönergesine LDAP öznitelik değerlerinin ve karmaşık arama süzgeçlerinin kullanımı gibi yeni özellikler eklenmiştir. mod_authz_owner- Dosya sistemi üzerindeki dosyalara erişimi dosya sahibine göre düzenleyebilmeyi sağlayan yeni bir modüldür.
mod_version- Çalışan sunucunun sürüm numarasına göre belli yapılandırma bloklarını etkinleştirebilen bir modüldür.
mod_info- Apache tarafından çözümlenen haliyle yapılandırma yönergelerinin
gösterilmesini sağlayan yeni
?configparametresini ekler. Modül ayrıca,httpd -V’nin yaptığı gibi ek olarak derleme bilgisini ve tüm istek kancalarının sırasını da gösterir. mod_ssl- TLS şifrelemesini HTTP/1.1 için güncelleyen RFC 2817 için destek sağlar.
mod_imagemapmod_imapmodülünün ismi yanlış anlamalara meydan vermemek içinmod_imagemapolarak değiştirildi.
Programlardaki Gelişmeler
httpd- Mevcut yapılandırmaya göre yüklenen modülleri listelemek için
-Mdiye yeni bir komut satırı seçeneği eklendi.-lseçeneğinin aksine, bu seçenekle elde edilen listemod_soüzerinden yüklenen DSO’ları içerir. httxt2dbmRewriteMapyönergesindedbmeşlem türü ile kullanmak üzere metin girdilerden DBM dosyaları üretmek için kullanılan yeni bir program.
Modül Geliştirici Değişiklikleri
- APR 1.0 Programlama Arayüzü
- Apache 2.2’de APR 1.0 API kullanılmıştır. Kullanımı önerilmeyen
tüm işlevler ve simgeler
APRveAPR-Util’den kaldırılmıştır. Ayrıntılar için APR Sitesine bakınız. - Authn/Authz
- Dağıtımla gelen kimlik doğrulama ve yetkilendirme modüllerinin
isimleri aşağıdaki gibi değiştirildi:
mod_auth_*-> HTTP kimlik doğrulamasını gerçekleştiren modüller.mod_authn_*-> Kimlik doğrulamasının artalanına destek sağlayan modüller.mod_authz_*-> Yetkilendirmeyi (veya erişimi) gerçekleştiren modüller.mod_authnz_*-> Kimlik doğrulama ve yetkilendirmeyi birlikte gerçekleştiren modüller.
- Bağlantı Hatalarının Günlüklenmesi
- İstemci bağlantısında ortaya çıkan hataları günlüğe kaydetmek için
ap_log_cerrorisminde yeni bir işlev eklendi. Böyle bir durumda günlük kaydı istemcinin IP adresini içermektedir. - Deneme Yapılandırma Kancası Eklendi
- Kullanıcı,
httpd’yi sadece-tseçeneği ile kullandığı takdirde özel kod icra edilmesini isteyen modüllere yardımcı olmak üzeretest_configdiye yeni bir kanca işlev eklendi. - Evreli MPM’lerin Yığıt Boyutunun Ayarlanması
- Tüm evreli MPM’lerin yığıt boyutunu ayarlamak üzere
ThreadStackSizeisminde yeni bir yönerge eklendi. Öntanımlı yığıt boyutunun küçük olduğu platformlarda bazı üçüncü parti modüller tarafından buna ihtiyaç duyulmaktadır. - Çıktı süzgeçlerinde protokoller
- Evvelce her süzgeç etkilediğini yanıt başlıklarının doğru olarak
üretilmesini sağlamak zorundaydı. Süzgeçler artık protokol yönetimini
ap_register_output_filter_protocolveyaap_filter_protocolişlevi üzerindenmod_filtermodülüne devredebilmektedir. - İzleme kancası eklendi
- İzleme kancası, modüllerin ana (tepe) süreçteki sıradan/zamanlanmış işlerini yapacak modülleri etkinleştirir.
- Düzenli ifade programlama aryüzü değişti
pcreposix.hbaşlık dosyası artık yok; yerineap_regex.hdosyası geçti. Eski başlık dosyasınca ifade olunan POSIX.2regex.hgerçeklenimi şimdiap_isim alanı altındaap_regex.hbaşlık dosyasındadır.regcomp,regexecgibi işlevlerin yerine de artıkap_regcomp,ap_regexecişlevleri geçerlidir.- DBD Arayüzü (SQL Veritabanı API)
Apache 1.x ve 2.0’da, modüller, SQL veritabanlarını kendileri yönetebilmek için sorumluluğu alacak bir SQL artalanına ihtiyaç duymaktadır. Her biri kendi bağlantısına sahip bir sürü modül olduğunda bu yöntem çok verimsiz olabilmektedir.
Apache 2.1 ve sonrasında veritabanı bağlantılarını (evreli olsun olmasın MPM’lerin eniyilenmiş stratejileri dahil) yönetmek için
ap_dbdarayüzü kullanılmıştır. APR 1.2 ve sonrasında ise veritabanı ile etkileşimapr_dbdarayüzüyle sağlanmıştır.Yeni modüllerin tüm SQL veritabanı işlemlerinde bu arayüzü kullanmaları ÖNERİlir. Mevcut uygulamaların uygulanabildiği takdirde hem kullanıcılarına önerilen bir seçenek olarak hem de şeffaf olarak kullanmak üzere kendilerini güncellemeleri ÖNERİir.


