<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
<!-- English Revision: 1673563 -->
<!-- =====================================================
 Translated by: Nilgün Belma Bugüner <nilgun belgeler.gen.tr>
   Reviewed by: Orhan Berent <berent belgeler.gen.tr>
========================================================== -->

<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<manualpage metafile="name-based.xml.meta">
<parentdocument href="./">Sanal Konaklar</parentdocument>
<title>İsme Dayalı Sanal Konaklar</title>

<summary>
    <p>Bu belgede isme dayalı sanal konakların ne zaman, nasıl kullanılacakları
      açıklanmıştır.</p>
</summary>

<seealso><a href="ip-based.html">IP Adresine Dayalı Sanal Konaklar</a></seealso>
<seealso><a href="details.html">Konak Eşlemenin Derinliğine İncelenmesi</a>
</seealso>
<seealso><a href="mass.html">Devingen olarak Yapılandırılan Kütlesel Sanal
Barındırma</a></seealso>
<seealso><a href="examples.html">Çok kullanılan sanal konak yapılandırma
örnekleri</a></seealso>

<section id="namevip"><title>İsme dayalı ve IP’ye dayalı Sanal Konaklar</title>

    <p><a href="ip-based.html">IP’ye dayalı sanal konaklar</a>da 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.</p>

    <p>İ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.</p>

    <p>İ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ı gerektiren donanım kullanmadıkça isme  dayalı
      sanal konaklar kullanmalısınız. İstemci uyumuna bağlı IP’ye dayalı
      sanal barındırma için eskiden varolan sebepler genel amaçlı bir HTTP
      sunucusu için artık uygulanabilir değildir.</p>

    <p>İ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.</p>

</section>

<section id="alg">
  <title>Sunucu isme dayalı sanal konaklardan uygun olanını nasıl seçer</title>

    <p>İ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 <code>VirtualHost</code> yönergelerinde IP adresi
      yerine joker kullanımı bu IP'ye dayalı eşlemeyi yersiz kılar.</p>

    <p>Bir istek geldiğinde, sunucu, istekte kullanılan IP adresi ve portu ile
      en iyi eşleşen <directive type="section" module="core"
      >VirtualHost</directive> 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 <directive module="core" >ServerName</directive> ve
      <directive module="core">ServerAlias</directive> yönergelerindeki
      isimlerle karşılaştırır.</p>

    <p>Herhangi bir isme dayalı sanal konakta <directive
      module="core">ServerName</directive> yönergesini kullanmazsanız, sunucu
      bu yönergeye sistem konak adından türetilmiş tam nitelenmiş alan adının
      (FQDN) tanımlandığını varsayacaktır. Bu örtük atama sezgiselliğin
      istenmediği bir sanal konak eşleşmesi ile sonuçlanabilir ve bu
      önerilmez.</p>

  <section id="defaultvhost">
   <title>Bir IP adresi ve port çifti için öntanımlı isme dayalı sankon</title>
    <p><directive module="core" >ServerName</directive> ve
      <directive module="core">ServerAlias</directive> yönergelerinde bir
      eşleşme bulunamazsa, Apache httpd bu çift ile eşleşen <strong>sanal
      konaklar listesindeki ilk sanal konağı</strong> kullanır.</p>
  </section>
</section>

<section id="using"><title>İsme Dayalı Sanal Konakların Kullanımı</title>

<related>
    <modulelist>
    <module>core</module>
    </modulelist>

    <directivelist>
      <directive module="core">DocumentRoot</directive>
      <directive module="core">ServerAlias</directive>
      <directive module="core">ServerName</directive>
      <directive module="core" type="section">VirtualHost</directive>
    </directivelist>
</related>

    <p>İlk adım sunacağınız her konak için ayrı bir <directive type="section"
      module="core">VirtualHost</directive> bölümü oluşturmaktır. Her
      <directive type="section" module="core" >VirtualHost</directive> bölümü
      içinde sunulan konağı belirtmek üzere en azından bir adet <directive
      module="core">ServerName</directive> yönergesine ve konak içeriğinin
      dosya sisteminde bulunduğu yeri gösteren bir <directive
      module="core">DocumentRoot</directive> yönergesine ihtiyacınız
      olacaktır.</p>

    <note><title>Ana konağı unutmayın</title>
      <p>Mevcut <directive type="section" module="core">VirtualHost</directive>
        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.</p>

      <p>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, <directive
        module="core">ServerName</directive> yönergesi ana sunucununki ile aynı
        olan bir <a href="#defaultvhost">öntanımlı sanal konak</a> 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.</p>
    </note>

    <note><title>ServerName miras alma</title>
       <p>İsme dayalı her sanal konak için daima bir <directive module="core"
       >ServerName</directive> belirtmek en iyisidir.</p>

       <p>Eğer bir <directive module="core">VirtualHost</directive> bölümü
       içinde bir <directive module="core">ServerName</directive>
       belirtilmezse, sunucu ismi olarak ana sunucu yapılandırmasındaki isim
       kullanılır. Orada da bir sunucu ismi belirtilmemişse, başlatma sırasında
       dinlenen ilk IP adresinden ters DNS araması ile elde edilen isim
       kullanılır. Her iki durumda da miras alınan isim gereksiz yere isme
       dayalı sanal konak ismi haline gelecektir; bu bakımdan isme dayalı her
       sanal konak için daima bir <directive module="core"
       >ServerName</directive> belirtmek en iyisidir.</p>
    </note>

    <p>Örnek olarak, <code>site1.example.com</code> adresinden sitenizi
      sunmakta olduğunuzu ve bunun yanına aynı IP adresini kullanan
      <code>site2.example.com</code> sanal konağını eklemek istediğinizi
      varsayalım. Bunun için <code>httpd.conf</code> dosyanıza basitçe şu
      satırları ekleyebilirsiniz:</p>

    <highlight language="config">
&lt;VirtualHost *:80&gt;
    #İlk sanal konak aynı zamanda *:80 için de öntanımlıdır.
    ServerName site1.example.com
    ServerAlias example.com
    DocumentRoot "/siteler/site1"
&lt;/VirtualHost&gt;

&lt;VirtualHost *:80&gt;
    ServerName site2.example.com
    DocumentRoot "/siteler/site2"
&lt;/VirtualHost&gt;
    </highlight>

    <p>İsterseniz, <directive type="section" module="core"
      >VirtualHost</directive> yönergesinde argüman olarak <code>*</code>
      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.</p>

    <p>Çoğu sunucunun birden fazla isim ile erişilebilir olması istenir. Bu,
      <directive type="section" module="core">VirtualHost</directive> bölümü
      içine bir <directive module="core">ServerAlias</directive> yönergesi
      yerleştirmek suretiyle mümkün olur. Örneğin yukarıdaki örnekte,
      kullanıcıların aynı siteye farklı isimlerle erişmelerini mümkün kılmak
      için bölüm içine şu satırı ekleyebilirsiniz:</p>

    <highlight language="config">
ServerAlias example.com *.example.com
    </highlight>

    <p>Böylece <code>example.com</code> alanındaki tüm konaklar için gelen
      isteklere <code>www.example.com</code> sanal konağından hizmet sunulmuş
      olur. Konak isimleriyle eşleşmek üzere dosya ismi kalıp karakterleri
      <code>*</code> ve <code>?</code> kullanılabilir. Şüphesiz bu isimleri
      sırf <directive module="core">ServerName</directive> veya
      <code>ServerAlias</code> 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.</p>

    <p>İ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 <directive module="core"
      >ServerName</directive> veya <directive module="core"
      >ServerAlias</directive> yönergesi eşleşen ilk sanal konak
      kullanılır.</p>

    <p><code>VirtualHost</code> içindeki isimlerin sırası (jokersiz) bir
      <code>ServerAlias</code> gibi ele alınır (fakat hiçbir
      <code>ServerAlias</code> yönergesi ile geçersiz kılınmaz).</p>

    <p>Son olarak, sanal konak yapılandırmanıza, <directive type="section"
      module="core">VirtualHost</directive> 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ı
      değiştirmek için kullanılabilir. Belli bir yönergenin sanal konak
      bölümlerinde kullanılıp kullanılmayacağını yönergenin açıklamasında <a
      href="../mod/directive-dict.html#Context">Bağlam</a> satırına bakarak
      öğrenebilirsiniz. <em>Ana sunucu bağlamındaki</em> (<directive
      type="section" module="core">VirtualHost</directive> bölümleri dışındaki)
      yapılandırma yönergelerinden sadece sanal konak bölümlerinde geçersiz
      kılınmamış olanlar kullanılacaktır.</p>

</section>

</manualpage>
