etiksan blog
Etiksan Sys Blog

Apache Virtual Hosts

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.
httpd.confVirtualHost www.etiksan.com
ServerAdmin webmaster@etiksan.com
DocumentRoot c:/www/etiksan (/www/etiksan *)
ServerName www.etiksan.com
ErrorLog c:/www/etiksan/errorlog (/www/etiksan/errorlog *)
TransferLog c:/www/etiksan/accesslog (/www/etiksan/accesslog *)



ServerAdmin webmaster@example.com
DocumentRoot c:/www/example(/www/example *)
ServerName www.etiksan.com
ErrorLog c:/www/example/errorlog (/www/example/errorlog *)
TransferLog c:/www/example/accesslog (/www/example/accesslog *)
</VirtualHost>
(* 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.
httpd.conf#Include conf/extra/httpd-vhosts.conf
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.
httpd.confNameVirtualHost *


DocumentRoot c:/www/etiksan (/www/etiksan *)
ServerName www.etiksan.com



DocumentRoot c:/www/example(/www/example *)
ServerName www.etiksan.com
</VirtualHost>
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

Henüz yorum yazan olmamış.
Anasayfa
02.12.2008
Blue Theme Red Theme
This web site is built with PHP This web site uses MySQL database platform
This web site includes AJAX
Valid XHTML 1.0 Strict Valid CSS!
"Neye karşı koyarsan, o ısrarla olmaya devam eder"
Carl Jung