Sanal Adresleme (Virtual Hosting)
Önceki Apache Web Sunucusunda Sanal Adresleme ve Dizin Erişiminin Kısıtlanması NASIL Sonraki
Sanal Adresleme (Virtual Hosting)
Sanal Adresleme Nedir?
Apache web sunucusunda  Sanal Adresleme (Virtual Hosting), tek bir Apache web sunucusu üzerinde birden fazla web alanı için hizmet vermek amacı ile kullanılır. Bu belgede isme göre sanal adresleme yapılandırması anlatılacaktır. Tüm web alanları için web sunucusunda tek bir IP adresi kullanılacaktır. IP'ye göre de yapılandırma yapılır ama bunun için her web alanı için ayrı ayrı IP adresi tanımlanmalıdır. Bu durumda isme göre yapılandırma yapmak daha mantıklıdır (en azından ben öyle düşünüyorum :)) ).
Sanal Adres Yapılandırması
İlk önce Apache web sunucusunu kurmuş olmanız gerekiyor!!
Eğer apache yi kurmadıysanız http://apache.bilkent.edu.tr adresinden apache'nin en son sürümünü indiriniz (Şu anki son sürüm apache-1.3.12). Apache derlemek için aşagıdaki komutları sıra ile veriniz:
# tar -zxvf apache_1.3.12.tar.gz
# cd apache_1.3.12
# mkdir /www
# ./configure --prefix=/www  && make && make install
--prefix=/www ifadesi apache ile ilgili tüm dosyaların /www dizini altına atılmasını sağlayacaktır. Bu parametreyi vermezseniz ön tanımlı olarak /usr/local/apache dizini altına atılacaktır.
Apache sunucusunu başlatmak için:
# /www/bin/apachectl start
komutunu vermeniz yeterlidir.
Daha sonra sevdiginiz bir metin düzenleyici ile httpd.conf dosyasını açınız.
# vi /www/conf/httpd.conf
Diyelimki www.linux.org.tr, www.rt.net.tr, www.bsdlive.org için sanal adresleme yapacağız. İlk önce tüm bu alanlar için dns kaydı yapılması lazım ve dns sunucuda bu alanların IP adresi olarak apache web suncusunun IP adresi verilmelidir.
Burada apache web sunucusun IP adresi olarak 195.1.2.4 verilecektir.
Sırası ile linux.org.tr ve www.bsdlive.org için sanal adresleme bilgilerini yazalım:
NameVirtualHost 195.1.2.4:80

# www.linux.org.tr  12 Ekim 2000 de olusturuldu (yenigul)

<VirtualHost 195.1.2.4>
  ServerAdmin yenigul@rt.net.tr
  DocumentRoot /www/htdocs/domains/linux
  ServerName www.linux.org.tr
  ErrorLog logs/error_linux.org.tr
  TransferLog logs/access_log_linux.org.tr
</VirtualHost>

# www.bsdlive web alanı 16 Ekim 2000 de olusturuldu (yenigul)

<VirtualHost 195.1.2.4>
  ServerAdmin yenigul@rt.net.tr
  DocumentRoot /www/htdocs/domains/bsdlive
  ServerName www.bsdlive.org
  ErrorLog logs/error_bsdlive
  TransferLog logs/access_log_bsdlive
</VirtualHost>
Şimdi yukarıdaki ifadelerin ne demek olduğunu açıklayalım.
NameVirtualHost  195.1.2.4:80 İfadesindeki 195.1.2.4 Apache web sunucusunun IP adresi (IP Gerçek değil, öylesine bir IP verdim) ve 80 ile de httpd port'u belirtilmiştir.
# ile başlayan kısımlar sadece açıklama kısmıdır. Olup olmaması yapılandırmayı etkilemez.
<VirtualHost 195.1.2.4> ifadesindeki IP adresi web sunucusunun IP adresi  olmalı.
ServerAdmin yenigul@rt.net.tr ifadesi ile  bu web alanının yetkili kişisinin eposta adresi belirtilir.
DocumentRoot  /www/htdocs/domains/linux ifadesi ile www.linux.org.tr adresinin dosyalarının bulunduğu yeri belirttik.
ServerName  www.linux.org.tr ifadesiyle adından da anlaşılacağı gibi Web alanı adı belirtildi.
ErrorLog logs/error_linux.org.tr ifadesi ile de bu web alanında oluşacak hatalar (dosyaların bulunamaması, CGI hataları) logs dizini altındaki (bizim kurulumda /www/logs) error_rt.net.tr dosyasına yazılır.
TransferLog  logs/access_log_linux.org.tr ifadesi ile de bu web alanına hangi IP'lerden erişildiği hangi dosyalara bakıldığı gibi bilgiler logs dizini altindaki (bizim kurulumda /www/logs) access_log.linux.org.tr dosyasına yazılır.
</VirtulHost> ifadesi ile bu alan için gerekli yapılandırmanın bittiğini belirttik.
Evet sanal adreslememizin sonuna geldik sayılır ama bir sorun var!!!
Bizim Apache Sunucumuzun IP adresi 195.1.2.4 idi. Diyelimki bu IP www.rt.net.tr isimli makinaya ait ve bu  adress RT.NET web sunucu.
Şu anki yapılandırmada  http://www.rt.net.tr adresine girmek isteyen birisi www.rt.net.tr yerine httpd.conf dosyasında en üstte bulunan web alanına gidecektir. Yani www.linux.org.tr adresine erişecektir.
Bu sorunu çözmek için www.rt.net.tr sunucunun adı olmasına rağmen, bu alan içinde sanal adresleme kaydı yapılmalıdır.
Aşağıdaki ifadeler yazılırsa bu sorun giderilmiş olur.
# www.rt.net.tr Web alanı kaydı

<VirtualHost 195.1.2.4>
  ServerAdmin yenigul@rt.net.tr
  DocumentRoot /www/htdocs
  ServerName www.rt.net.tr
  ErrorLog logs/error_rt.net.tr
  TransferLog logs/access_log_rt.net.tr
</VirtualHost>
En son olarak
# /www/bin/apachectl restart
komutu ile değişiklikler etkin hale getirilir.
Eğer daha onceden apache'yi kurmuşsanız  (Red Hat da)
# /etc/rc.d/init.d/httpd restart
komutu ile  değişikliği etkinleştirebilirsiniz.
Bu komut httpd.conf'da yapılan her değişiklikten sonra çalıştırılmalıdır yoksa yapılanlar etkin olmaz.!
Ve apache web sunucusunun her açılışta çalışması için /etc/rc.d/rc.local (Red Hat Linux için) dosyasının en sonuna
/www/bin/apachectl start
yazıyoruz.
Kolay gelsin artık sanal adresleme yapılıyor :)
Önceki Üst Ana Başlık Sonraki
Apache Web Sunucusunda Sanal Adresleme ve Dizin Erişiminin Kısıtlanması NASIL Başlangıç Dizin Erişimini Kısıtlama
Bir Linux Kitaplığı Sayfası