Apache Virtual Hosts
28
2008
Bu makalemde sizlere Apache Web Sunucu ile birden fazla alanın nasıl yayınlanacağını açıklayacağım. Özellikle paylaşımlı hosting hizmeti firmalarda sıklıkla ihtiyaç duyulacak olan bu yöntem sayesinde bir apache web sunucu üzerinden birden firmanın web sitesini yayınlayabiliriz. Burada kullanacağımız tekniklerden biri IP tabanlı ayrımlar ve isim tabanlı ayrımlardır.
IP Tabanlı Sanal Hostlar
Adından da anlaşılacağı üzere IP tabanlı sanal hostlar oluşturabilmek için web sunucumuzun farklı IP adreslerine sahip olması gerekmektedir. Bu noktada ister birden fazla network kartı kullanabilir, isterseniz de bir network kartına birden fazla IP adresi atayabilirsiniz. Yayınlanacak olan farklı sitelerle ilgili bilgileri, apache konfigürasyon dosyası olan httpd.conf dosyasında <VirtualHost> direktifleri içerisinde belirtmemiz gerekmektedir. IP Tabanlı sanal hostlar için gereken kodlar aşağıdaki gibidir.(* Unix sistemler için)
Bu kodları httpd.conf dosyasının içerisine direk yazabilirsiniz, veya httpd.conf dosyası içerisinde alttaki satırı bulup başındaki yorum (diyez) işaretini kaldırarak sanal host konfigürasyonunu ayrı bir dosyada yapılandırabilirsiniz. Include komudu bu dosyanın httpd.conf dosyası içerisine eklenmesini sağlayacaktır. Bu durumda yukarıdaki kodları apache kurulum klasöründeki conf/extra alt klasörünün içinde yer alan httpd-vhosts.conf dosyasının içerisine eklememiz gerekmektedir.IP Tabanlı yapılandırmada <VirtualHost> direktiflerinin içerisinde yazmış olduğumuz her adrese DNS sunucuda farklı bir IP adresi atanmış olması gerekm ektedir.
İsim Tabanlı Sanal Hostlar
Yukarıda yaptığımız işlemlerde sunucumuza her bir alan adı için bir IP adresi atanmış olması gerektiğini belirtmiştik. Bu tek IP adresi olan sistemler için mümkün olmayacak bir yapılandırmadır. Ayrıca bu tarz bir çözüm maliyeti de arttırabilir. Sıradaki yapılandırma şeklimiz olan isim tabanlı sanal hostlar yapılandırması tek bir IP adresi üzerinden çalışabilecek bir yapıdır ve uygulanması hem daha basit hem de daha az maliyetli olacaktır. İsim tabanlı yapılandırmada sunucu farklı alanları istekte bulunan trarayıcılar tarafından gönderilen Başlık Değerlerinden (Host Header) algılayacaktır. HTTP 1.1 protokolünü destekleyen internet tarayıcı programları (ki güncel programların -ie, firefox, opera- tümüyle desteklemektedirler) web sitelerine istekte bulundukları zaman bir de başlık değeri gönderirler. Apache web sunucu bu başlık değerine göre farklı web sitelerini tek bir IP adresi üzerinden yayınlayabilir.
İsim tabanlı yapılandırmada öncelikle istekleri karşılayan IP adresini belirtmemiz gerekmektedir. Bu işlemi de NameVirtualHost direktifiyle gerçekleştiriyoruz. NameVirtualHost direktifi, yanına IP adresini yazarak, veya tüm IP'ler anlamında bir yıldız işareti yazarak (*) kullanılmaktadır.Bu kodları httpd.conf (veya httpd-vhosts.conf) dosyasının içerisine eklediğimiz zaman Apache sunucu gelen isteklerden başlık bilgisini okuyup tarayıcıya ilgili alanın sitesini yayınlayacaktır. Böylelikle bir sunucuya birden fazla IP adresi atamamıza gerek kalmayacak ve tek bir sunucu makinayla birden fazla web sitesini rahatlıkla yayınlayabileceğiz : )
IP Tabanlı Sanal Hostlar
Adından da anlaşılacağı üzere IP tabanlı sanal hostlar oluşturabilmek için web sunucumuzun farklı IP adreslerine sahip olması gerekmektedir. Bu noktada ister birden fazla network kartı kullanabilir, isterseniz de bir network kartına birden fazla IP adresi atayabilirsiniz. Yayınlanacak olan farklı sitelerle ilgili bilgileri, apache konfigürasyon dosyası olan httpd.conf dosyasında <VirtualHost> direktifleri içerisinde belirtmemiz gerekmektedir. IP Tabanlı sanal hostlar için gereken kodlar aşağıdaki gibidir.(* Unix sistemler için)
Bu kodları httpd.conf dosyasının içerisine direk yazabilirsiniz, veya httpd.conf dosyası içerisinde alttaki satırı bulup başındaki yorum (diyez) işaretini kaldırarak sanal host konfigürasyonunu ayrı bir dosyada yapılandırabilirsiniz. Include komudu bu dosyanın httpd.conf dosyası içerisine eklenmesini sağlayacaktır. Bu durumda yukarıdaki kodları apache kurulum klasöründeki conf/extra alt klasörünün içinde yer alan httpd-vhosts.conf dosyasının içerisine eklememiz gerekmektedir.IP Tabanlı yapılandırmada <VirtualHost> direktiflerinin içerisinde yazmış olduğumuz her adrese DNS sunucuda farklı bir IP adresi atanmış olması gerekm ektedir.
İsim Tabanlı Sanal Hostlar
Yukarıda yaptığımız işlemlerde sunucumuza her bir alan adı için bir IP adresi atanmış olması gerektiğini belirtmiştik. Bu tek IP adresi olan sistemler için mümkün olmayacak bir yapılandırmadır. Ayrıca bu tarz bir çözüm maliyeti de arttırabilir. Sıradaki yapılandırma şeklimiz olan isim tabanlı sanal hostlar yapılandırması tek bir IP adresi üzerinden çalışabilecek bir yapıdır ve uygulanması hem daha basit hem de daha az maliyetli olacaktır. İsim tabanlı yapılandırmada sunucu farklı alanları istekte bulunan trarayıcılar tarafından gönderilen Başlık Değerlerinden (Host Header) algılayacaktır. HTTP 1.1 protokolünü destekleyen internet tarayıcı programları (ki güncel programların -ie, firefox, opera- tümüyle desteklemektedirler) web sitelerine istekte bulundukları zaman bir de başlık değeri gönderirler. Apache web sunucu bu başlık değerine göre farklı web sitelerini tek bir IP adresi üzerinden yayınlayabilir.
İsim tabanlı yapılandırmada öncelikle istekleri karşılayan IP adresini belirtmemiz gerekmektedir. Bu işlemi de NameVirtualHost direktifiyle gerçekleştiriyoruz. NameVirtualHost direktifi, yanına IP adresini yazarak, veya tüm IP'ler anlamında bir yıldız işareti yazarak (*) kullanılmaktadır.Bu kodları httpd.conf (veya httpd-vhosts.conf) dosyasının içerisine eklediğimiz zaman Apache sunucu gelen isteklerden başlık bilgisini okuyup tarayıcıya ilgili alanın sitesini yayınlayacaktır. Böylelikle bir sunucuya birden fazla IP adresi atamamıza gerek kalmayacak ve tek bir sunucu makinayla birden fazla web sitesini rahatlıkla yayınlayabileceğiz : )


Yorumlar: Apache Virtual Hosts