Apache HTTP Sunucusu Sürüm 2.4
Mevcut Diller: tr
Bu belgede isme dayalı sanal konakların ne zaman, nasıl kullanılacakları açıklanmıştır.
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 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.
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 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, ö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 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, 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 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ümleri dışındaki) yapılandırma yönergelerinden sadece sanal konak bölümlerinde geçersiz kılınmamış olanlar kullanılacaktır.
Mevcut Diller: tr