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: 1555999 -->
5 <!-- =====================================================
6 Translated by: Nilgün Belma Bugüner <nilgun belgeler.gen.tr>
7 Reviewed by: Orhan Berent <berent belgeler.gen.tr>
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>
44 <section id="namevip"><title>İsme dayalı ve IP’ye dayalı Sanal Konaklar</title>
46 <p><a href="ip-based.html">IP’ye dayalı sanal konaklar</a>da sunulacak
47 sanal konağı doğru tespit edebilmek için bağlantının yapıldığı IP
48 adresine bakılır. Bu bakımdan her konak için ayrı bir IP adresine
49 gereksinim vardır.</p>
51 <p>İsme dayalı sanal konaklarda ise sunucu, istemcinin HTTP başlığının bir
52 parçası olarak gönderdiği konak adını kullanır. Bu teknikte aynı IP
53 adresini çok sayıda 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ı gerektiren donanım kullanmadıkça isme dayalı
61 sanal konaklar kullanmalısınız. İstemci uyumuna bağlı IP’ye dayalı
62 sanal barındırma için eskiden varolan sebepler genel amaçlı bir HTTP
63 sunucusu için artık uygulanabilir değildir.</p>
65 <p>İsme dayalı sanal barındırma, IP'ye dayalı sanal barındırma seçim
66 algoritmasını kullanmaz, yani uygun sunucu ismini arama işlemi sadece en
67 iyi IP'ye dayalı adrese sahip sanal konaklar arasında gerçekleşir.</p>
72 <title>Sunucu isme dayalı sanal konaklardan uygun olanını nasıl seçer</title>
74 <p>İsme dayalı sanal konak çözümlemesinin ilk adımının IP'ye dayalı
75 çözümleme olduğunun anlaşılması çok önemlidir. İsme dayalı sanal konak
76 çözümlemesi en uygun isme dayalı sanal konağı seçerken önce en iyi IP'ye
77 dayalı eşleşme adaylarının sayısını azaltır, sonra bunlar arasından en
78 uygununu seçer. Tüm <code>VirtualHost</code> yönergelerinde IP adresi
79 yerine joker kullanımı bu IP'ye dayalı eşlemeyi yersiz kılar.</p>
81 <p>Bir istek geldiğinde, sunucu, istekte kullanılan IP adresi ve portu ile
82 en iyi eşleşen <directive type="section" module="core"
83 >VirtualHost</directive> bileşenini bulur. Bu IP adresi ve port çifti ile
84 eşleşen birden fazla sanal konak varsa, Apache httpd istekte kullanılan
85 sunucu ismini <directive module="core" >ServerName</directive> ve
86 <directive module="core">ServerAlias</directive> yönergelerindeki
87 isimlerle karşılaştırır.</p>
89 <section id="defaultvhost">
90 <title>Bir IP adresi ve port çifti için öntanımlı isme dayalı sankon</title>
91 <p><directive module="core" >ServerName</directive> ve
92 <directive module="core">ServerAlias</directive> yönergelerinde bir
93 eşleşme bulunamazsa, Apache httpd bu çift ile eşleşen <strong>sanal
94 konaklar listesindeki ilk sanal konağı</strong> kullanır.</p>
98 <section id="using"><title>İsme Dayalı Sanal Konakların Kullanımı</title>
102 <module>core</module>
106 <directive module="core">DocumentRoot</directive>
107 <directive module="core">ServerAlias</directive>
108 <directive module="core">ServerName</directive>
109 <directive module="core" type="section">VirtualHost</directive>
113 <p>İlk adım sunacağınız her konak için ayrı bir <directive type="section"
114 module="core">VirtualHost</directive> bölümü oluşturmaktır. Her
115 <directive type="section" module="core" >VirtualHost</directive> bölümü
116 içinde sunulan konağı belirtmek üzere en azından bir adet <directive
117 module="core">ServerName</directive> yönergesine ve konak içeriğinin
118 dosya sisteminde bulunduğu yeri gösteren bir <directive
119 module="core">DocumentRoot</directive> yönergesine ihtiyacınız
122 <note><title>Ana konağı unutmayın</title>
123 <p>Mevcut <directive type="section" module="core">VirtualHost</directive>
124 yönergelerinin hiçbiriyle eşleşmeyen bir istek için, sunucu veya konak
125 ismine bakılmaksızın genel sunucu yapılandırmanız kullanılır.</p>
127 <p>Mevcut sitenize isme dayalı bir sanal konak eklerseniz ve bu sanal
128 konak ana sunucunun IP adresi ve portuna sahipse, ana sunucuya yapılan
129 istekler için bu sanal konak kullanılır. Bu bakımdan, <directive
130 module="core">ServerName</directive> yönergesi ana sunucununki ile aynı
131 olan bir <a href="#defaultvhost">öntanımlı sanal konak</a> oluşturmak
132 akıllıca olacaktır. Aynı arayüz ve portu kullanan fakat farklı
133 yapılandırmalara sahip diğer alan isimlerinin sanal konakları (yani
134 öntanımlı olmayanlar) bu öntanımlı sanal konağın sonrasına
135 yerleştirilmelidir.</p>
138 <note><title>ServerName miras alma</title>
139 <p>İsme dayalı her sanal konak için daima bir <directive module="core"
140 >ServerName</directive> belirtmek en iyisidir.</p>
142 <p>Eğer bir <directive module="core">VirtualHost</directive> bölümü
143 içinde bir <directive module="core">ServerName</directive>
144 belirtilmezse, sunucu ismi olarak ana sunucu yapılandırmasındaki isim
145 kullanılır. Orada da bir sunucu ismi belirtilmemişse, başlatma sırasında
146 dinlenen ilk IP adresinden ters DNS araması ile elde edilen isim
147 kullanılır. Her iki durumda da miras alınan isim gereksiz yere isme
148 dayalı sanal konak ismi haline gelecektir; bu bakımdan isme dayalı her
149 sanal konak için daima bir <directive module="core"
150 >ServerName</directive> belirtmek en iyisidir.</p>
153 <p>Örnek olarak, <code>site1.example.com</code> adresinden sitenizi
154 sunmakta olduğunuzu ve bunun yanına aynı IP adresini kullanan
155 <code>site2.example.com</code> sanal konağını eklemek istediğinizi
156 varsayalım. Bunun için <code>httpd.conf</code> dosyanıza basitçe şu
157 satırları ekleyebilirsiniz:</p>
159 <highlight language="config">
160 <VirtualHost *:80>
161 #İlk sanal konak aynı zamanda *:80 için de öntanımlıdır.
162 ServerName site1.example.com
163 ServerAlias example.com
164 DocumentRoot /siteler/site1
167 <VirtualHost *:80>
168 ServerName site2.example.com
169 DocumentRoot /siteler/site2
173 <p>İsterseniz, <directive type="section" module="core"
174 >VirtualHost</directive> yönergesinde argüman olarak <code>*</code>
175 yerine doğrudan bir IP adresi belirtebilirsiniz. Hatta, daha sonra, isme
176 dayalı sanal konakları bir IP adresinden ve IP’ye dayalı olanları veya
177 isme dayalı diğer bir sanal konak grubunu diğer IP adreslerinden sunmak
178 isteyebilirsiniz.</p>
180 <p>Çoğu sunucunun birden fazla isim ile erişilebilir olması istenir. Bu,
181 <directive type="section" module="core">VirtualHost</directive> bölümü
182 içine bir <directive module="core">ServerAlias</directive> yönergesi
183 yerleştirmek suretiyle mümkün olur. Örneğin yukarıdaki örnekte,
184 kullanıcıların aynı siteye farklı isimlerle erişmelerini mümkün kılmak
185 için bölüm içine şu satırı ekleyebilirsiniz:</p>
187 <highlight language="config">
188 ServerAlias example.com *.example.com
191 <p>Böylece <code>example.com</code> alanındaki tüm konaklar için gelen
192 isteklere <code>www.example.com</code> sanal konağından hizmet sunulmuş
193 olur. Konak isimleriyle eşleşmek üzere dosya ismi kalıp karakterleri
194 <code>*</code> ve <code>?</code> kullanılabilir. Şüphesiz bu isimleri
195 sırf <directive module="core">ServerName</directive> veya
196 <code>ServerAlias</code> yönergesinde belirtmiş olmakla bu isimleri
197 erişilebilir kılamazsınız. Öncelikle, bu isimleri sunucunuzdaki IP
198 adresleriyle eşlemek üzere yapılandıracağınız bir DNS sunucunuz
201 <p>İsme dayalı sanal konaklardan en iyi eşleşme kümesinde olanlar
202 yapılandırmada göründükleri sıraya göre işleme sokulur. Joker
203 kullanımları arasında fark gözetilmeksizin <directive module="core"
204 >ServerName</directive> veya <directive module="core"
205 >ServerAlias</directive> yönergesi eşleşen ilk sanal konak
208 <p><code>VirtualHost</code> içindeki isimlerin sırası (jokersiz) bir
209 <code>ServerAlias</code> gibi ele alınır (fakat hiçbir
210 <code>ServerAlias</code> yönergesi ile geçersiz kılınmaz).</p>
212 <p>Son olarak, sanal konak yapılandırmanıza, <directive type="section"
213 module="core">VirtualHost</directive> bölümlerinin içine başka yönergeler
214 yerleştirerek ince ayar çekebilirsiniz. Çoğu yönerge bu bölümlere
215 yerleştirilebilir ve sadece o sanal konakla ilgili yapılandırmayı
216 değiştirmek için kullanılabilir. Belli bir yönergenin sanal konak
217 bölümlerinde kullanılıp kullanılmayacağını yönergenin açıklamasında <a
218 href="../mod/directive-dict.html#Context">Bağlam</a> satırına bakarak
219 öğrenebilirsiniz. <em>Ana sunucu bağlamındaki</em> (<directive
220 type="section" module="core">VirtualHost</directive> bölümleri dışındaki)
221 yapılandırma yönergelerinden sadece sanal konak bölümlerinde geçersiz
222 kılınmamış olanlar kullanılacaktır.</p>