Apache HTTP Sunucusu Sürüm 2.4

Apache > HTTP Sunucusu > Belgeleme > Sürüm 2.4

# 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ü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ı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 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.
  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ç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.
  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.
`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ı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.