Apache HTTP Sunucusu Sürüm 2.4

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

 İsme dayalı ve IP’ye dayalı Sanal Konaklar
 İsme dayalı ve IP’ye dayalı Sanal Konaklar Sunucu isme dayalı sanal konaklardan uygun olanını nasıl seçer
 Sunucu isme dayalı sanal konaklardan uygun olanını nasıl seçer İsme Dayalı Sanal Konakların Kullanımı
 İsme Dayalı Sanal Konakların Kullanımı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ı 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.
İ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.
Herhangi bir isme dayalı sanal konakta ServerName 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.
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 | 
|---|---|
İ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 <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.
İsme dayalı her sanal konak için daima bir ServerName belirtmek en iyisidir.
Eğer bir VirtualHost bölümü
       içinde bir ServerName
       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 ServerName belirtmek en iyisidir.
Ö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 apache2.conf dosyanıza basitçe şu
      satırları ekleyebilirsiniz:
<VirtualHost *:80>
    #İ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 site2.example.com
    DocumentRoot "/siteler/site2"
</VirtualHost>
    İ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ü
      içine bir ServerAlias 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:
ServerAlias example.com *.example.com
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
      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.
VirtualHost içindeki isimlerin sırası (jokersiz) bir
      ServerAlias gibi ele alınır (fakat hiçbir
      ServerAlias yönergesi ile geçersiz kılınmaz).
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ı
      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 Bağlam satırına bakarak
      öğrenebilirsiniz. Ana sunucu bağlamındaki (<VirtualHost> 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.