blob: 2de3b0f787b58b765884d43fd83760a06130c03c [file] [log] [blame]
<?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>