Apache HTTP Sunucusu Sürüm 2.0
Apache 2.0’da Yeni olan Özellikler
Bu belgede Apache HTTP Sunucusunun 1.3 ve 2.0 sürümleri arasındaki başlıca değişikliklerin bazılarına değinilmiştir.
Ayrıca bakınız:
Çekirdekteki Gelişmeler
- Unix Evreleri
- POSIX evreleri desteği olan Unix sistemlerinde Apache, çok evreli kipte çok süreçlilik şeklinde melez bir yapıda çalışır. Bu bir çok bakımdan ölçeklenebilirliği arttırsa da bütün yapılandırmalarda sağlanamaz.
- Yeni Paket Derleme Sistemi
- Yeni kaynak paketi derleme sistemi
autoconf
velibtool
’a dayalı olarak sıfırdan, yeni baştan yazıldı. Böylece Apache’nin paket yapılandırma sistemi diğer paketlerinkiyle benzerlik kazanmış oldu. - Çok Sayıda Protokol Desteği
- Apache artık çok sayıda protokol ile hizmet sunacak bir alt yapıya
sahiptir. Örneğin,
mod_echo
modülü bu amaçla yazılmıştır. - Unix dışı platformalara daha iyi destek
- Apache 2.0 sürümleri, BeOS, OS/2, Windows gibi Unix olmayan platformlarda daha hızlı ve daha kararlı çalışacak duruma getirilmiştir. Genelde iyi geliştirilmemiş olan dolayısıyla istenen başarımı sağlayamayan POSIX taklit katmanlarının kullanımından vazgeçilmiş, platforma özgü çok süreçlilik modülleri (MPM) ve Apache Taşınabilirlik Arayüzü (APR) sayesinde bu platformlar artık kendi doğal programlama arayüzleriyle gerçeklenir olmuştur.
- Yeni Apache Programlama Arayüzü
- Modüller için kullanılan programlama arayüzü 2.0 sürümüyle önemli değişikliklere uğramıştır. 1.3 sürümünde görülen modüllerle ilgili sıralama/öncelik sorunlarının çoğu giderilmiştir. 2.0 sürümü bu işlemleri daha bir özdevimli yapar olmuştur; daha fazla esneklik sağlamak için artık kancalı modül sıralaması kullanılabilmektedir. Ayrıca, arayüze, Apache sunucu çekirdeğini yamamaya gerek kalmadan modüllerle sunucu yeteneklerinin arttırılabilmesini sağlayan yeni çağrılar eklenmiştir.
- IPv6 Desteği
- IPv6’nın Apache Taşınabilirlik Arayüzü kütüphanesi tarafından
desteklendiği sistemlerde Apache öntanımlı olarak IPv6 soketlerini
dinler. Bundan başka,
Listen
,NameVirtualHost
veVirtualHost
yönergelerinin IPv6 sayısal adres dizgelerini desteklemesi sağlanmıştır.
Örnek:Listen [2001:db8::1]:8080
- Süzme
- Apache modülleri, artık, sunucuya teslim edilen veya sunucudan
teslim alınan içerik akımları üzerinde süzgeç gibi davranacak şekilde
yazılabilmektedir. Bu sayede, örneğin CGI betiklerinin çıktılarının
mod_include
modülününINCLUDES
süzgeci kullanılarak SSI yönergeleri için çözümlenmesi mümkündür. CGI programlarının birer eylemci olarak davranması gibi,mod_ext_filter
modülü de harici programların birer süzgeç olarak davranabilmesini mümkün kılar. - Çok Dilli Hata Yanıtları
- Hata yanıtlarının tarayıcılara yönelik iletileri artık SSI belgeleri kullanılarak çeşitli dillerde sağlanabilmektedir. Bunlar ayrıca yönetici tarafından görünüş ve kullanışlılık tutarlılığı bakımından kişiselleştirilebilmektedir.
- Basitleştirilmiş Yapılandırma
- Bazı yönergelerle ilgili kafa karışıklıkları giderilmiştir.
Bilhassa belli bir IP adresini dinlemek için kullanılan
Port
veBindAddress
yönergeleri ile ilgili karışıklığın önüne geçmek için sadeceListen
yönergesi yeterli olmaktadır.ServerName
yönergesi ise sadece yönlendirme ve sanal konak tanıma amacıyla sunucu ismi ve port belirtiminde kullanılmaktadır. - Doğal Windows NT Unicode Desteği
- Apache 2.0, Windows NT üzerinde artık tüm dosya sistemi kodlamalarında utf-8 kullanmaktadır. Bu destek, Windows 2000 ve Windows XP dahil tüm Windows NT temelli sistemlere çok dillilik desteğini sağlamak üzere mevcut Unicode dosya sistemine doğrudan uyarlanır. Dosya sisteminde makinenin yerel karakter kodlamasını kullanan kullanan Windows 95, 98 ve ME için bu destek yoktur.
- Düzenli İfade Kütüphanesi Güncellemesi
- Apache 2.0’da Perl uyumlu düzenli ifade kütüphanesi bulunur. Tüm düzenli ifadelerde artık çok daha güçlü olan Perl 5 sözdizimi kullanılmaktadır.
Modüllerdeki Gelişmeler
mod_ssl
- Apache 2.0’da yeni olan bu modül, OpenSSL tarafından sağlanan SSL/TLS şifreleme protokollerine bir arayüzdür.
mod_dav
- Apache 2.0’da yeni olan bu modül, site içeriğinin destek ve bakımı için HTTP dağıtık yazım ve sürüm yönetimi (DAV - Distributed Authoring and Versioning) belirtimini gerçekler.
mod_deflate
- Apache 2.0’da yeni olan bu modül sayesinde ağ band genişliğinden daha verimli yararlanabilmek için içeriğin sıkıştırılarak gönderilmesini talep eden tarayıcıların desteklenmesi mümkün olmuştur.
mod_auth_ldap
- Apache 2.0.41’de yeni olan bu modül, HTTP temel kimlik
doğrulamasında kullanılan delillerin saklanması için LDAP
veritabanının kullanılabilmesini mümkün kılar. Kardeş modülü olan
mod_ldap
ise bağlantı havuzlaması ve sonuçların önbelleğe alınması ile ilgilenir. mod_auth_digest
- Paylaşımlı belleği kullanan süreçlere karşı oturum önbelleklemesi için ek destek içerir.
mod_charset_lite
- Apache 2.0’da yeni olan bu deneysel modül, karakter kümesi dönüşümleri veya kaydı için destek sağlar.
mod_file_cache
- Apache 2.0’da yeni olan bu modül, Apache 1.3’teki
mod_mmap_static
modülünün işlevselliğini içermenin yanında buna önbellekleme yetenekleri de ekler. mod_headers
- Bu modül Apache 2.0’da daha esnek hale getirilmiştir. Artık
mod_proxy
tarafından kullanılan istek başlıkları değiştirilebilmekte ve bunlar yanıt başlıklarına şartlı olarak atanabilmektedir. mod_proxy
- Bu modül HTTP/1.1 uyumlu vekaleti daha güvenilir kılmak ve yeni
süzgeç alt yapısının getirilerinden de yararlanmak amacıyla yeni
baştan yazılmıştır. Bunun yanında,
<Proxy>
bölümünün yeni hali vekil siteleri desteklemek bakımından daha okunabilir (ve kendi içinde daha hızlı) olması sağlanmıştır;<Directory "proxy:...">
yapılandırması artık desteklenmemektedir. Modül,proxy_connect
,proxy_ftp
veproxy_http
şeklinde her biri belli bir protokolü destekleyen ayrı modüllere bölünmüştür. mod_negotiation
- Yeni
ForceLanguagePriority
yönergesi sayesinde istemciye “Kabul edilebilir bir gösterim çeşidi yok” ya da “Çok sayıda seçim belirtilmiş” yanıtını döndürmek yerine tüm durumlara uyan bir sayfanın gönderilebilmesi sağlanmıştır. Bundan başka, uzlaşım veMultiViews
algoritmaları daha tutarlı sonuçlar elde etmek amacıyla elden geçirilmiş ve belge içeriği ile daha iyi eşleşen yeni bir tür eşlem yapısı sağlanmıştır. mod_autoindex
- Dizin içeriklerinin özdevimli listelenmesi artık HTML tabloları kullanılacak şekilde yapılandırılabilmektedir. Böylece sayfa daha iyi biçemlenebilmekte, içerik daha hassas sıralanabilmekte, sürüm numarasına göre sıralama yapılabilmekte ve dosya ismi kalıpları kullanılarak sadece istenen içerik listelenebilmektedir.
mod_include
- Yeni yönergeler, değiştirilecek SSI elemanları için öntanımlı
başlangıç ve bitiş etiketlerine izin vermekte, hataların ve zaman
biçemleme yapılandırmalarının SSI belgesinde değil ana yapılandırma
dosyasında bulunması mümkün olmaktadır. Düzenli ifadelerin gruplanmış
sonuçları (Perl düzenli ifade sözdizimi kullanılmaktadır)
mod_include
modülünün$0
..$9
değişkenleri sayesinde kullanılabilmektedir. mod_auth_dbm
AuthDBMType
yönergesi sayesinde artık çok sayıda DBM tarzı veritabanı türü desteklenmektedir.