Apache Sanal Adres (Virtual Host) Ayarı

Sanal Adresleme, tek bir web sunucusu üzerinde birden fazla sitenin hizmet vermesi amacıyla kullanılır.
Apache web sunucusunda iki tip sanal adresleme vardır. İsme Dayalı ve Adrese Dayalı sanal adresleme, birincisinde her site ayrı bir ip adresinden sunulurken, ikincisinde bir ip adresinde birden fazla site sunulur.

Bir tarayıcı, bir kullanıcının istediği belgeyi almaya çalışırken ilk olarak girilen alan adını bir alan adı sunucusu (Domain Name Server – DNS) yardımıyla IP ye dönüştürür. Daha sonra isteğe orjinal alan adını da ekleyerek ilgili IP ye yollar. Eğer Apache web sunucusunda herhangi bir sanal sunucu tanımlı değilse belgeyi doğrudan ana sunucunun DocumentRoot dizininden alır. Eğer bir sanal sunucu tanımlıysa isteği, tüm tanımlı sanal sunucularla karşılaştırır ve Virtual Host tanımlamalarında ki ServerName alanı ile eşleşen ilk blok işletilir.

Sanal Adreslemenin ne olduğu hakkında bu kısa bilgiden sonra Pardus işletim sistemi üzerine kurulu Apache web sunusunda bu işlemi nasıl yapacağımızı anlatacağım.

İsme Dayalı Sanal Adresleme yapmak için, istekleri kabul edecek ip adresi ve portu sunucuya belirtmemiz gerekir. Bunu NameVirtualHost yönergesi ile yaparız ve genellikle *:80 değerini kullanırız. Yani ağ kartımızda tanımlı tüm ip adreslerinin 80 portundan gelen istekler.

Bu işlemi yapmak için Alt+F2 basıp çıkan Komut Çalıştır penceresine konsole yazıp Tamam a basıyoruz.Çıkan pencerede su komutunu verip root şifremizi giriyoruz. Sanal sunucu ile ilgili yapacağımız ayarlar /etc/apache2/vhosts.d/00_default_vhost.conf konfigürasyon dosyasında tutulmaktadır. Yine komut satırından vi /etc/apache2/vhosts.d/00_default_vhost.conf komutunu vererek dosyayı açıyoruz. Aşağıda da görüldüğü gibi bu ayar varsayılan olarak bulunmaktadır.

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80

Bu ayarı yaptıktan sonra sunacağımız her ayrı alan ismi için ayrı bir VirtualHost bloğu tanımlamız gerekir. Bu bloklarda ServerName ve DocumentRoot argümanlarını girmemiz yeterlidir. Aşağıda kendi test bilgisayarımda yaptığım bir VirtualHost tanımlamasını verdim.

<VirtualHost *:80>
DocumentRoot "/home/kullanici/proje/deneme"
ServerName deneme.com
<Directory "/home/kullanici/proje/deneme">
AllowOverride All
Allow from all
</Directory>
</VirtualHost>

Bu arada ServerName argümanına verdiğimiz deneme.com alan adı için DNS kaydı girmemiz gerekir. Kendi bilgisayarınız da bu kaydı /etc/hosts dosyasına girebilirsiniz.

127.0.0.1 localhost DENEME
127.0.0.1 deneme.com

Print Friendly

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir