Bir sunucu yalnızca tek bir web sitesi barındırmak zorunda değildir. Virtual host (sanal sunucu) yapılandırmasıyla, tek bir sunucu ve tek bir IP adresi üzerinde onlarca farklı siteyi aynı anda yayınlayabilirsiniz. Bu rehberde virtual host mantığını ve Nginx ile Apache üzerinde nasıl yapılandırıldığını açıklıyoruz.

İlgili içerikler: Nginx yapılandırma rehberi · Nginx vs Apache · Linux dosya izinleri

Virtual Host Nedir?

Virtual host, bir web sunucusunun gelen isteği hangi alan adına geldiğine göre farklı sitelere yönlendirmesini sağlayan yapılandırmadır. Ziyaretçi site-a.com yazdığında A sitesi, site-b.com yazdığında B sitesi yanıt verir — ikisi de aynı sunucuda çalışır.

Bu nasıl mümkün olur? Tarayıcı her HTTP isteğinde Host başlığını gönderir. Web sunucusu bu başlığa bakarak isteği doğru sitenin yapılandırmasına eşler. Buna isim tabanlı sanal barındırma denir ve modern web'in standart yöntemidir.

Virtual Host Ne Zaman Kullanılır?

  • Bir VPS üzerinde birden çok proje veya müşteri sitesi barındırmak.
  • Ana site ile alt alan adlarını (blog.site.com, shop.site.com) ayrı yapılandırmak.
  • Canlı site ile test/staging ortamını aynı sunucuda ayırmak.
  • Reseller veya ajans modelinde tek sunucuda çok site yönetmek.

Nginx'te Virtual Host (Server Block)

Nginx'te her site için bir server block tanımlanır. Yapılandırma dosyaları genellikle /etc/nginx/sites-available/ dizininde tutulur ve sites-enabled/ dizinine sembolik bağlantıyla etkinleştirilir:

server {
    listen 80;
    server_name site-a.com www.site-a.com;
    root /var/www/site-a;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

İkinci bir site için, farklı server_name ve root değerleriyle ayrı bir server block oluşturursunuz. Nginx, gelen isteğin Host başlığını server_name ile eşleştirir.

Apache'de Virtual Host

Apache'de aynı işlevi <VirtualHost> blokları sağlar; dosyalar /etc/apache2/sites-available/ dizininde tutulur ve a2ensite komutuyla etkinleştirilir. Mantık Nginx ile aynıdır: her site için ayrı bir blok, ayrı ServerName ve DocumentRoot.

Her Site İçin SSL

Virtual host yapısında her alan adı kendi SSL sertifikasına sahip olmalıdır. Modern TLS, SNI (Server Name Indication) sayesinde tek IP üzerinde birden çok sertifikayı destekler. Let's Encrypt gibi araçlar her alan adı için ücretsiz sertifikayı otomatik kurar ve yeniler.

İpucu
Yapılandırmayı değiştirdikten sonra etkinleştirmeden önce nginx -t (Apache'de apachectl configtest) ile sözdizimini test edin. Hatalı bir yapılandırmayı yüklemek tüm siteleri aynı anda çevrimdışı bırakabilir.

Sıkça Sorulan Sorular

Tek sunucuda kaç site barındırabilirim?

Teknik bir sınır yoktur; pratik sınır sunucunun kaynaklarıdır (CPU, RAM, disk). Düşük trafikli onlarca statik site sorunsuz çalışırken, birkaç yoğun dinamik site bile bir sunucuyu zorlayabilir.

Siteler birbirini etkiler mi?

Aynı sunucuda oldukları için kaynakları (CPU, RAM) paylaşırlar; bir sitedeki ani yük diğerlerini yavaşlatabilir. İzolasyon kritikse her siteyi ayrı kullanıcı altında veya konteynerlerde çalıştırmak önerilir.

IP tabanlı sanal barındırma hâlâ kullanılıyor mu?

Nadiren. İsim tabanlı barındırma neredeyse tüm senaryolar için yeterlidir. IP tabanlı yöntem yalnızca özel ağ veya sertifika gereksinimlerinde gündeme gelir.

Çoklu Site İçin Doğru Sunucu

KEYDAL VPS ile tek sunucuda birden fazla sitenizi güvenle ve performanslı biçimde barındırın. KEYDAL VPS planlarını inceleyin

WhatsApp