Sanal Konaklar
IP’ye Dayalı Sanal Konak Desteği
İsme Dayalı Sanal Konak Desteği
IP'ye dayalı sanal konak desteği nedir
IP'ye dayalı sanal konak desteği, bir isteğin alındığı IP adresi ve
porta bağlı olarak farklı yönergeleri uygulamak için bir yoldur. Özetle,
farklı siteleri farklı portlardan ve arayüzlerden sunmakta
kullanılır.
Çoğu durumda, isme dayalı sanal konaklar
birçok sanal konağın tek bir IP adresi/port çiftini paylaşmasını
sağladığından daha kullanışlıdır. Neyi kullanacağınıza karar vermek için
İsme dayalı ve IP’ye dayalı Sanal
Konaklar bölümüne bakınız.
Sistem gereksinimleri
IP’ye dayalı deyince, sunucunun her IP’ye dayalı
sanal konak için ayrı bir IP adresi/port çiftine sahip olduğunu
anlıyoruz. Bunun olması için, makine ya çok sayıda ağ bağlantısına
sahiptir ya da makinede, günümüzde çoğu işletim sistemi tarafından
desteklenen sanal arabirimler ve/veya çok sayıda port kullanılıyordur.
(Sanal arabirimlerle ilgili ayrıntılar için sistem belgelerinize bakınız;
bu konu genellikle IP rumuzları (ip aliases) olarak geçer ve ayarlamak
için genellikle "ifconfig" komutu kullanılır.)
Apache HTTP Sunucusu terminolojisinde, tek bir IP adresinin çok sayıda
TCP portuyla kullanımı IP'ye dayalı sanal konak desteği olarak
bilinir.
Apache nasıl ayarlanır?
Çok sayıda konağı desteklemek üzere Apache iki şekilde
yapılandırılabilir. Ya her konak için ayrı bir httpd
süreci çalıştırırsınız ya da tüm sanal konakları destekleyen tek bir
süreciniz olur.
Çok sayıda süreç kullanıyorsanız:
- Güvenli bölgeler oluşturmanız gerekiyordur. Örneğin, şirket2’deki hiç
kimse dosya sistemi üzerinden şirket1’e ait verileri okuyamasın, sadece
herkes gibi tarayıcı kullanarak okuyabilsin istenebilir. Bu durumda,
User,
Group,
Listen ve
ServerRoot yönergeleri farklı
değerlerle yapılandırılmış iki ayrı süreç çalıştırmanız gerekir.
- Makine üzerindeki her IP adresini dinlemek için gereken dosya tanıtıcı
ve bellek miktarını makul bir seviyede tutabilirsiniz. Bu sadece belli
adresleri dinleyerek veya çok sayıda adresle eşleşen adres kalıpları
kullanarak mümükün olabilir. Zaten, bir sebeple belli bir adresi dinleme
ihtiyacı duyarsanız, diğer tüm adresleri de ayrı ayrı dinlemeniz
gerekir. (Bir httpd programı N-1 adresi dinlerken
diğerleri kalan adresleri dinleyebilir.)
Tek bir süreç kullanıyorsanız:
- httpd yapılandırmasının sanal konaklar arasında
paylaşılmasına izin veriliyor demektir.
- Makine çok büyük miktarda isteği karşılayabilir ve ayrı ayrı
süreçlerin çalışmasından kaynaklanan önemli başarım kayıpları
yaşanmaz.
Çok sayıda sürecin yapılandırılması
Her sanal konak için ayrı bir httpd yapılandırması
oluşturulur. Her yapılandırmada, o süreç tarafından sunulacak IP adresi
(veya sanal konak) için Listen
yönergesi kullanılır. Örnek:
Listen 192.0.2.100:80
Burada konak ismi yerine IP adresi kullanmanız önerilir (ayrıntılar için
DNS ile ilgili konular belgesine
bakınız).
Sanal konaklar tek bir sürecin yapılandırılması
Bu durum için, ana sunucu ve sanal konakların tümüne gelen istekler tek
bir httpd süreci tarafından karşılanır. Yapılandırma
dosyasında, her sanal konak için, farklı değerlere sahip ServerAdmin, ServerName, DocumentRoot, ErrorLogveTransferLog
veya CustomLog yönergeleri
içeren ayrı birer VirtualHost bölümü
oluşturulur. Örnek:
<VirtualHost 192.168.1.10:80>
ServerAdmin bilgi@posta.birkobi.dom
DocumentRoot /gruplar/birkobi/belgeler
ServerName www.birkobi.dom
ErrorLog /gruplar/birkobi/günlükler/hatalar.log
CustomLog /gruplar/birkobi/günlükler/erisim.log combined
</VirtualHost>
<VirtualHost 192.168.1.20:80>
ServerAdmin bilgi@posta.digerkobi.dom
DocumentRoot /gruplar/digerkobi/belgeler
ServerName www.digerkobi.dom
ErrorLog /gruplar/digerkobi/günlükler/hatalar.log
CustomLog /gruplar/digerkobi/günlükler/erisim.log combined
</VirtualHost>
<VirtualHost> yönergesinde konak ismi yerine
IP adresi kullanmanız önerilir (ayrıntılar için
DNS ile ilgili konular
belgesine bakınız).
Belli bir IP adresi veya port kullanımı bunların joker eşdeğerlerine
göre daha yüksek öncelik sağlar ve eşleşen bir sanal konak da genel
sunucuya göre öncelik alır.
Süreç oluşturmayı denetleyen yönergeler ve bir kaç başka yönerge dışında
hemen hemen tüm yapılandırma yönergeleri VirtualHost bölümleri içinde kullanılabilir.
Bir yönergenin VirtualHost
bölümlerinde kullanılıp kullanılmayacağını öğrenmek için yönerge dizinini kullanarak yönergenin
Bağlam’ına bakınız.
suEXEC sarmalayıcısı kullanıldığı takdirde
SuexecUserGroup yönergesi de
bir VirtualHost bölümü içinde
kullanılabilir.
GÜVENLİK:Günlük dosyalarının yazılacağı yeri belirlerken,
Apache’yi başlatan kullanıcıdan başka kimsenin yazamayacağı bir yerin
seçilmesi bazı güvenlik risklerini ortadan kaldırmak bakımından
önemlidir. Ayrıntılar için güvenlik
ipuçları belgesine bakınız.