Return-Path:
Bu belgede isme dayalı sanal konakların ne zaman, nasıl kullanılacakları açıklanmıştır.
IP’ye dayalı sanal konaklarda sunulacak sanal konağı doğru tespit - edebilmek için bağlantının yapıldığı IP adresine bakılır. Bu bakımdan her - konak için ayrı bir IP adresine gereksinim vardır. İsme dayalı sanal - konaklarda ise sunucu, istemcinin HTTP başlığının bir parçası olarak - gönderdiği konak adını kullanır. Bu teknikte aynı IP adresini çok sayıda - farklı konak kullanabilir.
+IP’ye dayalı sanal konaklarda sunulacak + sanal konağı doğru tespit edebilmek için bağlantının yapıldığı IP + adresine bakılır. Bu bakımdan her konak için ayrı bir IP adresine + gereksinim vardır.
+ +İsme dayalı sanal konaklarda ise sunucu, istemcinin HTTP başlığının bir + parçası olarak gönderdiği konak adını kullanır. Bu teknikte aynı IP + adresini çok sayıda farklı konak kullanabilir.
İsme dayalı sanal barındırma nispeten daha kolaydır, çünkü her konak ismini doğru IP adresiyle eşlemek için DNS sunucunuzu yapılandırdıktan sonra Apache HTTP sunucusunu farklı konak isimlerini tanıyacak şekilde yapılandırmanız yeterli olur. İsme dayalı sanal barındırma ayrıca zaten kıt olan IP adreslerine talebi de azaltır. Bu nedenle, IP’ye dayalı sanal - konakları kullanmanızı gerektirecek çok özel bir sebep olmadıkça isme - dayalı sanal konaklar kullanmalısınız. IP’ye dayalı sanal konakların - kullanımını gerektirebilecek bazı durumlar:
- -İsme dayalı sanal barındırma, IP'ye dayalı sanal barındırma seçim + algoritmasını kullanmaz, yani uygun sunucu ismini arama işlemi sadece en + iyi IP'ye dayalı adrese sahip sanal konaklar arasında gerçekleşir.
İsme dayalı sanal konak çözümlemesinin ilk adımının IP'ye dayalı
+ çözümleme olduğunun anlaşılması çok önemlidir. İsme dayalı sanal konak
+ çözümlemesi en uygun isme dayalı sanal konağı seçerken önce en iyi IP'ye
+ dayalı eşleşme adaylarının sayısını azaltır, sonra bunlar arasından en
+ uygununu seçer. Tüm VirtualHost
yönergelerinde IP adresi
+ yerine joker kullanımı bu IP'ye dayalı eşlemeyi yersiz kılar.
Bir istek geldiğinde, sunucu, istekte kullanılan IP adresi ve portu ile
+ en iyi eşleşen <VirtualHost>
bileşenini bulur. Bu IP adresi ve port çifti ile
+ eşleşen birden fazla sanal konak varsa, Apache httpd istekte kullanılan
+ sunucu ismini ServerName
ve
+ ServerAlias
yönergelerindeki
+ isimlerle karşılaştırır.
ServerName
ve
+ ServerAlias
yönergelerinde bir
+ eşleşme bulunamazsa, Apache httpd bu çift ile eşleşen sanal
+ konaklar listesindeki ilk sanal konağı kullanır.
İlgili Modüller | İlgili Yönergeler |
---|---|
İlgili Modüller | İlgili Yönergeler |
---|---|
İsme dayalı sanal konakları kullanmak için, bu konaklar için istekleri
- kabul edecek sunucuya IP adresini (ve muhtemelen portu da)
- belirtmelisiniz. Bu işlem NameVirtualHost
yönergesiyle yapılır. Normal
- şartlar altında sunucu üzerinde bütün IP adreslerinin kullanılması
- gerekir; bunun için NameVirtualHost
- yönergesine argüman olarak *
belirtebilirsiniz. Çok sayıda
- port kullanmayı planlıyorsanız (SSL çalıştırmak gibi), argümana
- *:80
şeklinde port ekleyebilirsiniz. Yalnız, NameVirtualHost
yönergesinde bir IP adresi
- belirtmiş olmakla sunucunun kendiliğinden o IP adresini dinlemeyeceğine
- dikkat ediniz. Bu konuda ayrıntılı bilgi edinmek için Apache’nin kullanacağı adreslerin ve portların
- ayarlanması belgesine bakınız. Ayrıca, sunucuda, burada belirttiğiniz
- IP adresine sahip bir ağ arabirimi olmalıdır.
Sonraki adım sunacağınız her konak için ayrı bir <VirtualHost>
bölümü oluşturmaktır.
- <VirtualHost>
- yönergesinin argümanı ile eşleşen bir NameVirtualHost
yönergesi tanımlanmış olmalıdır
- (değer normalde "*:80" olacaktır). Her <VirtualHost>
bölümü içinde sunulan konağı
- belirtmek üzere en azından bir adet ServerName
yönergesine ve konak içeriğinin dosya
- sisteminde bulunduğu yeri gösteren bir DocumentRoot
yönergesine
- ihtiyacınız olacaktır.
İlk adım sunacağınız her konak için ayrı bir <VirtualHost>
bölümü oluşturmaktır. Her
+ <VirtualHost>
bölümü
+ içinde sunulan konağı belirtmek üzere en azından bir adet ServerName
yönergesine ve konak içeriğinin
+ dosya sisteminde bulunduğu yeri gösteren bir DocumentRoot
yönergesine ihtiyacınız
+ olacaktır.
Mevcut sitenize sanal konaklar eklerseniz, mevcut siteniz için de bir
- <VirtualHost>
bölümü
- oluşturmalısınız. Bu sanal konak bölümü içinde kullanacağınız
- ServerName
ve DocumentRoot
yönergelerinin argümanları, bu
- yönergelerin sunucu geneli için belirttiğiniz değerlerini
- içermelidir. Bu sanal konağı yapılandırma dosyanızdaki ilk sanal konak
- yapın ki, öntanımlı konak olsun.
Mevcut <VirtualHost>
+ yönergelerinin hiçbiriyle eşleşmeyen bir istek için, sunucu veya konak
+ ismine bakılmaksızın genel sunucu yapılandırmanız kullanılır.
Mevcut sitenize isme dayalı bir sanal konak eklerseniz ve bu sanal
+ konak ana sunucunun IP adresi ve portuna sahipse, ana sunucuya yapılan
+ istekler için bu sanal konak kullanılır. Bu bakımdan, ServerName
yönergesi ana sunucununki ile aynı
+ olan bir öntanımlı sanal konak oluşturmak
+ akıllıca olacaktır. Aynı arayüz ve portu kullanan fakat farklı
+ yapılandırmalara sahip diğer alan isimlerinin sanal konakları (yani
+ öntanımlı olmayanlar) bu öntanımlı sanal konağın sonrasına
+ yerleştirilmelidir.
Örnek olarak, www.biralan.tld
adresinden sitenizi sunmakta
- olduğunuzu ve bunun yanına aynı IP adresini kullanan
- www.digeralan.tld
sanal konağını eklemek istediğinizi
+
Örnek olarak, site1.example.com
adresinden sitenizi
+ sunmakta olduğunuzu ve bunun yanına aynı IP adresini kullanan
+ site2.example.com
sanal konağını eklemek istediğinizi
varsayalım. Bunun için httpd.conf
dosyanıza basitçe şu
satırları ekleyebilirsiniz:
- NameVirtualHost *:80
-
<VirtualHost *:80>
- ServerName www.biralan.tld
- ServerAlias biralan.tld *.biralan.tld
- DocumentRoot /siteler/biralan
+ #İlk sanal konak aynı zamanda *:80 için de öntanımlıdır.
+ ServerName site1.example.com
+ ServerAlias example.com
+ DocumentRoot /siteler/site1
</VirtualHost>
<VirtualHost *:80>
- ServerName www.digeralan.tld
- DocumentRoot /siteler/digeralan
+
+ ServerName site2.example.com
+ DocumentRoot /siteler/site2
</VirtualHost>
İsterseniz, NameVirtualHost
ve
- <VirtualHost>
- yönergelerinde argüman olarak *
yerine doğrudan bir IP adresi
- belirtebilirsiniz. Hatta, daha sonra, isme dayalı sanal konakları bir IP
- adresinden ve IP’ye dayalı olanları veya isme dayalı diğer bir sanal konak
- grubunu diğer IP adreslerinden sunmak isteyebilirsiniz.
İsterseniz, <VirtualHost>
yönergesinde argüman olarak *
+ yerine doğrudan bir IP adresi belirtebilirsiniz. Hatta, daha sonra, isme
+ dayalı sanal konakları bir IP adresinden ve IP’ye dayalı olanları veya
+ isme dayalı diğer bir sanal konak grubunu diğer IP adreslerinden sunmak
+ isteyebilirsiniz.
Çoğu sunucunun birden fazla isim ile erişilebilir olması istenir. Bu,
<VirtualHost>
bölümü
@@ -152,19 +154,24 @@ Barındırma
- ServerAlias biralan.tld *.biralan.tld
+ ServerAlias example.com *.example.com
Böylece biralan.tld
alanındaki tüm konaklar için gelen
- isteklere www.biralan.tld
sanal konağından hizmet sunulmuş
+
Böylece example.com
alanındaki tüm konaklar için gelen
+ isteklere www.example.com
sanal konağından hizmet sunulmuş
olur. Konak isimleriyle eşleşmek üzere dosya ismi kalıp karakterleri
- *
ve ?
kullanılabilir. Şüphesiz bu isimleri sırf
- ServerName
veya
+ *
ve ?
kullanılabilir. Şüphesiz bu isimleri
+ sırf ServerName
veya
ServerAlias
yönergesinde belirtmiş olmakla bu isimleri
erişilebilir kılamazsınız. Öncelikle, bu isimleri sunucunuzdaki IP
adresleriyle eşlemek üzere yapılandıracağınız bir DNS sunucunuz
olmalıdır.
İsme dayalı sanal konaklardan en iyi eşleşme kümesinde olanlar
+ yapılandırmada göründükleri sıraya göre işleme sokulur. Joker
+ kullanımları arasında fark gözetilmeksizin ServerName
veya ServerAlias
yönergesi eşleşen ilk sanal konak
+ kullanılır.
Son olarak, sanal konak yapılandırmanıza, <VirtualHost>
bölümlerinin içine başka yönergeler
yerleştirerek ince ayar çekebilirsiniz. Çoğu yönerge bu bölümlere
yerleştirilebilir ve sadece o sanal konakla ilgili yapılandırmayı
@@ -174,75 +181,6 @@ Barındırma
NameVirtualHost
bölümlerine tek tek bakar ve
- istenen konak ismi ile eşleşen bir ServerName
veya ServerAlias
yönergesi bulmaya
- çalışır. Bir tane bulduğunda, sunucu için onun yapılandırmasını kullanır.
- İsimle eşleşen bir sanal konak bulamazsa IP adresiyle eşleşen ilk
- sanal konağın yapılandırmasını kullanır.
-
- Bir önkabul olarak yapılandırma dosyasında rastlanan ilk sanal konak
- öntanımlı sanal konaktır. IP adresi bir sanal konakla eşleştiği
- takdirde ana sunucunun DocumentRoot
değeri asla kullanılmayacaktır.
- Sanal konaklardan hiçbiriyle eşleşmeyen istekler için özel bir
- yapılandırmanız olsun isterseniz, bu yapılandırmayı yapılandırma
- dosyanızdaki ilk <VirtualHost>
bölümüne yerleştirmeniz
- yetecektir.
Evvelce de bahsedildiği gibi, isme dayalı sanal konakların gerektiği gibi - çalışması için gerekli veriyi göndermeyen bazı istemciler vardır. Bu - istemcilere daima o IP adresinin yapılandırma dosyasındaki ilk sanal - konağının (isme dayalı başat sanal konak) sayfaları - gönderilir.
- -Lütfen dikkat edin, eski deyince gerçekten de antika demek istiyoruz.
- Günümüzde bu tür tarayıcılara rastlamanız neredeyse imkansızdır. Günümüz
- tarayıcılarının hepsi isme dayalı sanal konakların gerektirdiği
- Host
başlığını gönderirler.
Olayı fazla germeden ServerPath
- yönergesini kullanarak sorunun çevresinden dolanmak mümkündür:
Örnek yapılandırma:
- -
- NameVirtualHost 111.22.33.44
-
- <VirtualHost 111.22.33.44>
-
- ServerName www.biralan.tld
- ServerPath /biralan
- DocumentRoot /siteler/biralan
-
- </VirtualHost>
-
Bu ne anlama geliyor? Anlamı, "/biralan
" ile başlayan her
- URI isteği www.biralan.tld
sanal konağı tarafından sunulacak,
- demektir. Yani, tüm istemcilerin
- http://www.biralan.tld/biralan/
olarak eriştiği yere
- Host:
başlığı gönderen istemciler
- http://www.biralan.tld/
olarak erişirler.
Bunu gerçekleştirebilmek için başat sanal konağın baş sayfasına
- http://www.biralan.tld/biralan/
için bir bağ koyduktan sonra
- sanal konağın sayfalarında ya tamamen göreli bağlar
- ("dosya.html
", "../simgeler/resim.png
" gibi)
- veya /biralan/
ile öncelenmiş bağlar
- ("http://www.biralan.tld/biralan/muht/dosya.html
" veya
- "/biralan/muht/dosya.html
" gibi) kullanın.
Bu işlem biraz disiplin gerektirse de bu yazılanlara sıkı sıkıya bağlı - kalarak hem eski hem de yeni tarayıcıların sayfalarınızı doğru - görüntülemesini sağlamış olursunuz.
-Mevcut Diller: de |
Modified: httpd/httpd/trunk/docs/manual/vhosts/name-based.xml.meta
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/vhosts/name-based.xml.meta?rev=1309555&r1=1309554&r2=1309555&view=diff
==============================================================================
--- httpd/httpd/trunk/docs/manual/vhosts/name-based.xml.meta (original)
+++ httpd/httpd/trunk/docs/manual/vhosts/name-based.xml.meta Wed Apr 4 19:26:10 2012
@@ -12,6 +12,6 @@