mod_vhost_alias - Apache HTTP Sunucusu

Apache Server 2.0

<-

Apache Modülü mod_vhost_alias

Açıklama:Kitlesel sanal konakların devingen olarak yapılandırılmasını sağlar
Durum:Eklenti
Modül Betimleyici:vhost_alias_module
Kaynak Dosyası:mod_vhost_alias.c

Özet

Bu modül, hangi dosyaların sunulacağını saptamak için dosya yolunun parçası olarak HTTP isteğinin Host: başlığının ve/veya IP adresinin kullanılmasını mümkün kılarak devingen yapılandırmalı sanal konaklar oluşturur. Böylece benzer yapılandırmaya sahip çok büyük sayıda sanal konak kullanımı kolaşlaşır.

Bilginize

URI’leri dosya isimlerine dönüştürmek için mod_alias veya mod_userdir kullanılmışsa bunlar mod_vhost_alias yönergeleri tarafından aşağıda açıklandığı gibi geçersiz kılınırlar. Örneğin, aşağıdaki yapılandırma her durumda /cgi-bin/script.pl betiğini /usr/local/apache2/cgi-bin/script.pl betiğine eşleyecektir:

ScriptAlias /cgi-bin/ /usr/local/apache2/cgi-bin/
VirtualScriptAlias /nerede/bilinmiyor/%0/cgi-bin/

top

Dizin İsimlerinin Elde Edilmesi

Bu modüldeki tüm yönergeler bir dizgeyi bir dosya yoluna dönüştürerek çalışırlar. Dönüşüm dizgesi (bundan sonra “isim” diyeceğiz) ya sunucu ismi olur (bunun nasıl belirlendiğini öğrenmek için UseCanonicalName yönergesine bakınız) ya da sunucu üzerindeki sanal konağın IP adresi olur. Dönüşümü, printf’inkilerin benzeri birkaç biçem belirteci denetler:

%% Bir % imi yerleştirir.
%p Sanal konağın IP adresini yerleştirir.
%N.M İsmin parçalarını yerleştirir.

N ve M ismin alt dizgelerini belirtmek için kullanılır. N, ismin noktalarla ayrılmış bileşenlerinden seçim yaparken M, N ile seçilen parçadan karakter seçmekte kullanılır. M isteğe bağlı olup mevcut olmaması halinde öntanımlı olarak sıfırdır. Noktanın varlığı M’nin varlığına bağlıdır. Dönüşüm şöyle uygulanır:

0 ismin tamamı
1 ilk parça
2 ikinci parça
-1 son parça
-2 sondan bir önceki parça
2+ ikinci parça ve sonraki parçaların hepsi
-2+ sondan bir önceki parça ve daha önceki parçaların hepsi
1+ ve -1+ 0 ile aynı

N veya M parça sayısından büyükse dönüşüm dizgesi sadece alt çizgi karakterini içerir.

top

Örnekler

Sunucu yapılandırma dosyanızda isme dayalı sanal konaklar için aşağıdaki yönergeler kullanılıyor olsun:

UseCanonicalName Off
VirtualDocumentRoot /usr/local/apache/sankonlar/%0

http://mesela.dom/dizin/dosya.html için yapılan bir istek /usr/local/apache/sankonlar/mesela.dom/dizin/dosya.html dosyası ile yerine getirilecektir.

Çok büyük sayıda sanal konak için sankonlar dizininin boyutlarını küçük tutmak amacıyla dosyalar düzenlenebilir. Bunu yapılandırma dosyanızda şöyle yapabilirsiniz:

UseCanonicalName Off
VirtualDocumentRoot /usr/local/apache/sankonlar/%3+/%2.1/%2.2/%2.3/%2

http://falan.filan.mesela.dom/dizin/dosya.html için yapılan bir istek /usr/local/apache/sankonlar/mesela.dom/f/i/l/filan/dizin/dosya.html ile yerine getirilecektir.

Bu sefer de parçaları ismin sonundan toplayalım:

VirtualDocumentRoot /usr/local/apache/sankonlar/%3+/%2.-1/%2.-2/%2.-3/%2

Bu durumda istek /usr/local/apache/sankonlar/mesela.dom/n/a/l/filan/dizin/dosya.html ile karşılanırdı.

Şöyle bir şey de yapabilirsiniz:

VirtualDocumentRoot /usr/local/apache/sankonlar/%3+/%2.1/%2.2/%2.3/%2.4+

Bu örnek için istek /usr/local/apache/sankonlar/mesela.dom/f/i/l/an/dizin/dosya.html dosyasından karşılanırdı.

IP’ye dayalı sanal konaklar için yapılandırma dosyanızda şu satırlar olabilirdi:

UseCanonicalName DNS
VirtualDocumentRootIP /usr/local/apache/sankonlar/%1/%2/%3/%4/belgeler
VirtualScriptAliasIP /usr/local/apache/sankonlar/%1/%2/%3/%4/cgi-bin

http://falan.filan.mesela.dom/dizin/dosya.html için yapılan bir istek eğer falan.filan.mesela.dom’un IP adresi 10.20.30.40 olsaydı, /usr/local/apache/sankonlar/10/20/30/40/belgeler/dizin/dosya.html dosyası ile karşılanırdı. http://falan.filan.mesela.dom/cgi-bin/betik.pl için yapılan bir istek ise /usr/local/apache/sankonlar/10/20/30/40/cgi-bin/betik.pl betiğinin çalıştırılması ile sağlanırdı.

Bir VirtualDocumentRoot yönergesinin . karakterini içermesini isterseniz, bir biçem belirteci ile karışıklığa sebep olmaksızın bunu şöyle sağlayabilirsiniz:

VirtualDocumentRoot /usr/local/apache/sankonlar/%2.0.%3.0

Bu durumda http://falan.filan.mesela.dom/dizin/dosya.html için yapılan bir istek /usr/local/apache/sankonlar/filan.mesela/dizin/dosya.html dosyası ile karşılanacaktır.

LogFormat yönergesinin %V ve %A biçem belirteçleri bu modülle birlikte kullanıldığında çok yararlı olurlar.

top

VirtualDocumentRoot Yönergesi

Açıklama:Bir sanal konağın belge kök dizinini devingen olarak yapılandırır.
Sözdizimi:VirtualDocumentRoot hesaplanan-dizin|none
Öntanımlı:VirtualDocumentRoot none
Bağlam:sunucu geneli, sanal konak
Durum:Eklenti
Modül:mod_vhost_alias

VirtualDocumentRoot yönergesi sunucu ismine göre belgelerin bulunacağı yeri Apache’nin saptamasını sağlar. hesaplanan-dizin’in dönüşüm sonucu DocumentRoot yönergesinin değeriymiş gibi belge ağacının kök dizini olarak kullanılır. hesaplanan-dizin yerine none belirtilmişse VirtualDocumentRoot iptal edilmiş olur. Bu yönerge VirtualDocumentRootIP yönergesinin kullanıldığı bağlamda yer alamaz.

top

VirtualDocumentRootIP Yönergesi

Açıklama:Bir sanal konağın belge kök dizinini devingen olarak yapılandırır.
Sözdizimi:VirtualDocumentRootIP hesaplanan-dizin|none
Öntanımlı:VirtualDocumentRootIP none
Bağlam:sunucu geneli, sanal konak
Durum:Eklenti
Modül:mod_vhost_alias

VirtualDocumentRootIP yönergesi, dizinin saptanmasında sunucu ismi yerine bağlantının sonlandığı sunucunun IP adresini kullanması dışında VirtualDocumentRoot gibidir.

top

VirtualScriptAlias Yönergesi

Açıklama:Bir sanal konağın CGI dizinini devingen olarak yapılandırır.
Sözdizimi:VirtualScriptAlias hesaplanan-dizin|none
Öntanımlı:VirtualScriptAlias none
Bağlam:sunucu geneli, sanal konak
Durum:Eklenti
Modül:mod_vhost_alias

VirtualScriptAlias yönergesi, CGI betiklerinin bulunacağı yeri Apache’nin saptamasını sağlamak bakımından VirtualDocumentRoot yönergesinin yaptığını yapar. /cgi-bin/ ile başlayan istekler için ise ScriptAlias yönergesinin yaptığını yapar.

top

VirtualScriptAliasIP Yönergesi

Açıklama:Bir sanal konağın CGI dizinini devingen olarak yapılandırır.
Sözdizimi:VirtualScriptAliasIP hesaplanan-dizin|none
Öntanımlı:VirtualScriptAliasIP none
Bağlam:sunucu geneli, sanal konak
Durum:Eklenti
Modül:mod_vhost_alias

VirtualScriptAliasIP yönergesi, dizinin saptanmasında sunucu ismi yerine bağlantının sonlandığı sunucunun IP adresini kullanması dışında VirtualScriptAlias gibidir.