1 <?xml version='1.0' encoding='UTF-8' ?>
2 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
4 <!-- English Revision: 659902:1066434 (outdated) -->
5 <!-- =====================================================
6 Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
7 Reviewed by: Orhan Berent <berent belgeler.org>
8 ========================================================== -->
11 Licensed to the Apache Software Foundation (ASF) under one or more
12 contributor license agreements. See the NOTICE file distributed with
13 this work for additional information regarding copyright ownership.
14 The ASF licenses this file to You under the Apache License, Version 2.0
15 (the "License"); you may not use this file except in compliance with
16 the License. You may obtain a copy of the License at
18 http://www.apache.org/licenses/LICENSE-2.0
20 Unless required by applicable law or agreed to in writing, software
21 distributed under the License is distributed on an "AS IS" BASIS,
22 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23 See the License for the specific language governing permissions and
24 limitations under the License.
27 <manualpage metafile="name-based.xml.meta">
28 <parentdocument href="./">Sanal Konaklar</parentdocument>
29 <title>İsme Dayalı Sanal Konaklar</title>
32 <p>Bu belgede isme dayalı sanal konakların ne zaman, nasıl kullanılacakları
36 <seealso><a href="ip-based.html">IP Adresine Dayalı Sanal Konaklar</a></seealso>
37 <seealso><a href="details.html">Konak Eşlemenin Derinliğine İncelenmesi</a>
39 <seealso><a href="mass.html">Devingen olarak Yapılandırılan Kütlesel Sanal
40 Barındırma</a></seealso>
41 <seealso><a href="examples.html">Çok kullanılan sanal konak yapılandırma
42 örnekleri</a></seealso>
43 <seealso><a href="examples.html#serverpath">ServerPath yapılandırma örneği</a>
46 <section id="namevip"><title>İsme dayalı ve IP’ye dayalı Sanal Konaklar</title>
48 <p>IP’ye dayalı sanal konaklarda sunulacak sanal konağı doğru tespit
49 edebilmek için bağlantının yapıldığı IP adresine bakılır. Bu bakımdan her
50 konak için ayrı bir IP adresine gereksinim vardır. İsme dayalı sanal
51 konaklarda ise sunucu, istemcinin HTTP başlığının bir parçası olarak
52 gönderdiği konak adını kullanır. Bu teknikte aynı IP adresini çok sayıda
53 farklı konak kullanabilir.</p>
55 <p>İsme dayalı sanal barındırma nispeten daha kolaydır, çünkü her konak
56 ismini doğru IP adresiyle eşlemek için DNS sunucunuzu yapılandırdıktan
57 sonra Apache HTTP sunucusunu farklı konak isimlerini tanıyacak şekilde
58 yapılandırmanız yeterli olur. İsme dayalı sanal barındırma ayrıca zaten
59 kıt olan IP adreslerine talebi de azaltır. Bu nedenle, IP’ye dayalı sanal
60 konakları kullanmanızı gerektirecek çok özel bir sebep olmadıkça isme
61 dayalı sanal konaklar kullanmalısınız. IP’ye dayalı sanal konakların
62 kullanımını gerektirebilecek bazı durumlar:</p>
65 <li>Bazı tarihi istemciler isme dayalı sanal konaklarla uyumlu değildir.
66 İsme dayalı sanal konakların çalışması için istemcinin HTTP Host
67 başlığı göndermesi gerekir. Bu da HTTP/1.1 desteği gerektirir.
68 Günümüzdeki HTTP/1.0 istemcileri bir eklenti olarak HTTP/1.1’i de
69 desteklemektedir. Tarihi eser haline gelmiş HTTP/1.1 desteği
70 bulurmayan eski istemcileri hala isme dayalı sanal konaklarla
71 desteklemek isterseniz bu belgenin sonunda bunu mümkün kılabilecek bir
72 tekniğe yer verilmiştir.</li>
74 <li>İsme dayalı sanal konaklar SSL portokolünün doğası gereğince SSL’li
75 güvenli sunucular için kullanılamazlar.</li>
77 <li>Bazı işletim sistemlerinin ve ağ donanımlarının gerçekleştirdiği
78 band genişliği yönetim teknikleri IP adresleri farklı olmadığı sürece
79 konaklar arasında ayrım yapamazlar.</li>
84 <section id="using"><title>İsme Dayalı Sanal Konakların Kullanımı</title>
92 <directive module="core">DocumentRoot</directive>
93 <directive module="core">NameVirtualHost</directive>
94 <directive module="core">ServerAlias</directive>
95 <directive module="core">ServerName</directive>
96 <directive module="core">ServerPath</directive>
97 <directive module="core" type="section">VirtualHost</directive>
101 <p>İsme dayalı sanal konakları kullanmak için, bu konaklar için istekleri
102 kabul edecek sunucuya IP adresini (ve muhtemelen portu da)
103 belirtmelisiniz. Bu işlem <directive
104 module="core">NameVirtualHost</directive> yönergesiyle yapılır. Normal
105 şartlar altında sunucu üzerinde bütün IP adreslerinin kullanılması
106 gerekir; bunun için <directive module="core">NameVirtualHost</directive>
107 yönergesine argüman olarak <code>*</code> belirtebilirsiniz. Çok sayıda
108 port kullanmayı planlıyorsanız (SSL çalıştırmak gibi), argümana
109 <code>*:80</code> şeklinde port ekleyebilirsiniz. Yalnız, <directive
110 module="core">NameVirtualHost</directive> yönergesinde bir IP adresi
111 belirtmiş olmakla sunucunun kendiliğinden o IP adresini dinlemeyeceğine
112 dikkat ediniz. Bu konuda ayrıntılı bilgi edinmek için <a
113 href="../bind.html">Apache’nin kullanacağı adreslerin ve portların
114 ayarlanması</a> belgesine bakınız. Ayrıca, sunucuda, burada belirttiğiniz
115 IP adresine sahip bir ağ arabirimi olmalıdır.</p>
117 <p>Sonraki adım sunacağınız her konak için ayrı bir <directive
118 type="section" module="core">VirtualHost</directive> bölümü oluşturmaktır.
119 <directive type="section" module="core">VirtualHost</directive>
120 yönergesinin argümanı ile eşleşen bir <directive
121 module="core">NameVirtualHost</directive> yönergesi tanımlanmış olmalıdır
122 (değer normalde "*:80" olacaktır). Her <directive type="section"
123 module="core">VirtualHost</directive> bölümü içinde sunulan konağı
124 belirtmek üzere en azından bir adet <directive
125 module="core">ServerName</directive> yönergesine ve konak içeriğinin dosya
126 sisteminde bulunduğu yeri gösteren bir <directive
127 module="core">DocumentRoot</directive> yönergesine
128 ihtiyacınız olacaktır.</p>
130 <note><title>Ana konağı unutmayın</title>
131 <p>Mevcut sitenize sanal konaklar eklerseniz, mevcut siteniz için de bir
132 <directive type="section" module="core">VirtualHost</directive> bölümü
133 oluşturmalısınız. Bu sanal konak bölümü içinde kullanacağınız
134 <directive module="core">ServerName</directive> ve <directive
135 module="core">DocumentRoot</directive> yönergelerinin argümanları, bu
136 yönergelerin sunucu geneli için belirttiğiniz değerlerini
137 içermelidir. Bu sanal konağı yapılandırma dosyanızdaki ilk sanal konak
138 yapın ki, öntanımlı konak olsun.</p>
141 <p>Örnek olarak, <code>www.biralan.tld</code> adresinden sitenizi sunmakta
142 olduğunuzu ve bunun yanına aynı IP adresini kullanan
143 <code>www.digeralan.tld</code> sanal konağını eklemek istediğinizi
144 varsayalım. Bunun için <code>httpd.conf</code> dosyanıza basitçe şu
145 satırları ekleyebilirsiniz:</p>
148 NameVirtualHost *:80<br />
150 <VirtualHost *:80><br />
152 ServerName www.biralan.tld<br />
153 ServerAlias biralan.tld *.biralan.tld<br />
154 DocumentRoot /siteler/biralan<br />
156 </VirtualHost><br />
158 <VirtualHost *:80><br />
159 <indent>ServerName www.digeralan.tld<br />
160 DocumentRoot /siteler/digeralan<br />
162 </VirtualHost><br />
165 <p>İsterseniz, <directive module="core">NameVirtualHost</directive> ve
166 <directive type="section" module="core">VirtualHost</directive>
167 yönergelerinde argüman olarak <code>*</code> yerine doğrudan bir IP adresi
168 belirtebilirsiniz. Hatta, daha sonra, isme dayalı sanal konakları bir IP
169 adresinden ve IP’ye dayalı olanları veya isme dayalı diğer bir sanal konak
170 grubunu diğer IP adreslerinden sunmak isteyebilirsiniz.</p>
172 <p>Çoğu sunucunun birden fazla isim ile erişilebilir olması istenir. Bu,
173 <directive type="section" module="core">VirtualHost</directive> bölümü
174 içine bir <directive module="core">ServerAlias</directive> yönergesi
175 yerleştirmek suretiyle mümkün olur. Örneğin yukarıdaki örnekte,
176 kullanıcıların aynı siteye farklı isimlerle erişmelerini mümkün kılmak
177 için bölüm içine şu satırı ekleyebilirsiniz:</p>
180 ServerAlias biralan.tld *.biralan.tld
183 <p>Böylece <code>biralan.tld</code> alanındaki tüm konaklar için gelen
184 isteklere <code>www.biralan.tld</code> sanal konağından hizmet sunulmuş
185 olur. Konak isimleriyle eşleşmek üzere dosya ismi kalıp karakterleri
186 <code>*</code> ve <code>?</code> kullanılabilir. Şüphesiz bu isimleri sırf
187 <directive module="core">ServerName</directive> veya
188 <code>ServerAlias</code> yönergesinde belirtmiş olmakla bu isimleri
189 erişilebilir kılamazsınız. Öncelikle, bu isimleri sunucunuzdaki IP
190 adresleriyle eşlemek üzere yapılandıracağınız bir DNS sunucunuz
193 <p>Son olarak, sanal konak yapılandırmanıza, <directive type="section"
194 module="core">VirtualHost</directive> bölümlerinin içine başka yönergeler
195 yerleştirerek ince ayar çekebilirsiniz. Çoğu yönerge bu bölümlere
196 yerleştirilebilir ve sadece o sanal konakla ilgili yapılandırmayı
197 değiştirmek için kullanılabilir. Belli bir yönergenin sanal konak
198 bölümlerinde kullanılıp kullanılmayacağını yönergenin açıklamasında <a
199 href="../mod/directive-dict.html#Context">Bağlam</a> satırına bakarak
200 öğrenebilirsiniz. <em>Ana sunucu bağlamındaki</em> (<directive
201 type="section" module="core">VirtualHost</directive> bölümleri dışındaki)
202 yapılandırma yönergelerinden sadece sanal konak bölümlerinde geçersiz
203 kılınmamış olanlar kullanılacaktır.</p>
205 <p>Sunucuya bir istek geldiğinde, sunucu önce IP adresiyle eşleşmesi olası
206 <directive module="core">NameVirtualHost</directive> bölümleri var mı diye
207 bakar. Varsa, IP adresini eşleştirmek için <directive
208 module="core">NameVirtualHost</directive> bölümlerine tek tek bakar ve
209 istenen konak ismi ile eşleşen bir <directive module="core"
210 >ServerName</directive> veya <code>ServerAlias</code> yönergesi bulmaya
211 çalışır. Bir tane bulduğunda, sunucu için onun yapılandırmasını kullanır.
212 İsimle eşleşen bir sanal konak bulamazsa IP adresiyle eşleşen <strong>ilk
213 sanal konağın</strong> yapılandırmasını kullanır.</p>
215 <p>Bir önkabul olarak yapılandırma dosyasında rastlanan ilk sanal konak
216 <em>öntanımlı</em> sanal konaktır. IP adresi bir sanal konakla eşleştiği
217 takdirde <em>ana sunucunun</em> <directive module="core"
218 >DocumentRoot</directive> değeri <strong>asla</strong> kullanılmayacaktır.
219 Sanal konaklardan hiçbiriyle eşleşmeyen istekler için özel bir
220 yapılandırmanız olsun isterseniz, bu yapılandırmayı yapılandırma
221 dosyanızdaki ilk <directive type="section"
222 module="core">VirtualHost</directive> bölümüne yerleştirmeniz
227 <section id="compat"><title>Artık Tarihe Karışmış Tarayıcılarla Uyumluluk</title>
229 <p>Evvelce de bahsedildiği gibi, isme dayalı sanal konakların gerektiği gibi
230 çalışması için gerekli veriyi göndermeyen bazı istemciler vardır. Bu
231 istemcilere daima o IP adresinin yapılandırma dosyasındaki ilk sanal
232 konağının (isme dayalı <cite>başat</cite> sanal konak) sayfaları
235 <note><title>Ne kadar eski?</title>
236 <p>Lütfen dikkat edin, eski deyince gerçekten de antika demek istiyoruz.
237 Günümüzde bu tür tarayıcılara rastlamanız neredeyse imkansızdır. Günümüz
238 tarayıcılarının hepsi isme dayalı sanal konakların gerektirdiği
239 <code>Host</code> başlığını gönderirler.</p>
242 <p>Olayı fazla germeden <directive module="core">ServerPath</directive>
243 yönergesini kullanarak sorunun çevresinden dolanmak mümkündür:</p>
245 <p>Örnek yapılandırma:</p>
248 NameVirtualHost 111.22.33.44<br />
250 <VirtualHost 111.22.33.44><br />
252 ServerName www.biralan.tld<br />
253 ServerPath /biralan<br />
254 DocumentRoot /siteler/biralan<br />
256 </VirtualHost><br />
259 <p>Bu ne anlama geliyor? Anlamı, "<code>/biralan</code>" ile başlayan her
260 URI isteği <code>www.biralan.tld</code> sanal konağı tarafından sunulacak,
261 demektir. Yani, tüm istemcilerin
262 <code>http://www.biralan.tld/biralan/</code> olarak eriştiği yere
263 <code>Host:</code> başlığı gönderen istemciler
264 <code>http://www.biralan.tld/</code> olarak erişirler.</p>
266 <p>Bunu gerçekleştirebilmek için başat sanal konağın baş sayfasına
267 <code>http://www.biralan.tld/biralan/</code> için bir bağ koyduktan sonra
268 sanal konağın sayfalarında ya tamamen göreli bağlar
269 ("<code>dosya.html</code>", "<code>../simgeler/resim.png</code>" gibi)
270 veya <code>/biralan/</code> ile öncelenmiş bağlar
271 ("<code>http://www.biralan.tld/biralan/muht/dosya.html</code>" veya
272 "<code>/biralan/muht/dosya.html</code>" gibi) kullanın.</p>
274 <p>Bu işlem biraz disiplin gerektirse de bu yazılanlara sıkı sıkıya bağlı
275 kalarak hem eski hem de yeni tarayıcıların sayfalarınızı doğru
276 görüntülemesini sağlamış olursunuz.</p>