Apache Web Sunucusunda Sanal Host (VirtualHost) Kurulumu

Apache Web Sunucusunda Sanal Host (VirtualHost) Kurulumu
Yazı Özetini Göster

Apache Web Sunucusunda Sanal Host (VirtualHost) Kurulumu

Apache, açık kaynaklı en popüler web sunucularından biridir. Birden fazla web sitesini tek bir sunucu üzerinde barındırmak istiyorsanız, VirtualHost (Sanal Host) yapılandırması en doğru yöntemdir. Bu sayede her alan adı (domain) kendi kök dizinini, log dosyalarını ve ayarlarını kullanarak izole biçimde çalışır. Bu makalede, Linux tabanlı sistemlerde Apache VirtualHost kurulumunu adım adım açıklıyoruz.

VirtualHost Nedir?

VirtualHost, Apache’nin tek bir IP adresinde birden fazla web sitesi barındırmasını sağlayan bir yapılandırma yöntemidir. Bu yöntem üç şekilde uygulanabilir:

  • Name-based: Aynı IP adresinde birden fazla alan adı barındırılır.
  • IP-based: Her site farklı IP adresine atanır.
  • Port-based: Aynı IP üzerinde farklı portlar kullanılır (ör. 8080, 8081).

Kurulum Ön Koşulları

  • Apache yüklü olmalı (sudo apt install apache2 -y veya sudo yum install httpd -y).
  • Root veya sudo yetkisine sahip kullanıcı.
  • DNS kayıtları doğru yapılandırılmış (örnek: site1.com → 192.168.1.10).

Adım 1 – Apache Kurulumu (Varsa Atla)

# Ubuntu/Debian
sudo apt update
sudo apt install apache2 -y

# CentOS/RHEL
sudo yum install httpd -y
sudo systemctl enable --now httpd

Adım 2 – Web Dizinlerinin Oluşturulması

Her site için ayrı dizin yapısı oluşturulur:

sudo mkdir -p /var/www/site1.com/public_html
sudo mkdir -p /var/www/site2.com/public_html

# Sahiplik ve izin ayarları
sudo chown -R www-data:www-data /var/www/site1.com /var/www/site2.com
sudo chmod -R 755 /var/www

Örnek index.html Dosyaları

echo "<h1>Site1 Yayında!</h1>" | sudo tee /var/www/site1.com/public_html/index.html
echo "<h1>Site2 Yayında!</h1>" | sudo tee /var/www/site2.com/public_html/index.html

Adım 3 – VirtualHost Dosyalarının Oluşturulması

Apache’nin site konfigürasyon dizinine her site için bir yapılandırma dosyası eklenir:

sudo nano /etc/apache2/sites-available/site1.com.conf

site1.com.conf İçeriği

<VirtualHost *:80>
    ServerAdmin admin@site1.com
    ServerName site1.com
    ServerAlias www.site1.com
    DocumentRoot /var/www/site1.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/site1_error.log
    CustomLog ${APACHE_LOG_DIR}/site1_access.log combined
</VirtualHost>

site2.com.conf İçeriği

<VirtualHost *:80>
    ServerAdmin admin@site2.com
    ServerName site2.com
    DocumentRoot /var/www/site2.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/site2_error.log
    CustomLog ${APACHE_LOG_DIR}/site2_access.log combined
</VirtualHost>

Adım 4 – VirtualHost’ları Etkinleştirme

sudo a2ensite site1.com.conf
sudo a2ensite site2.com.conf
sudo systemctl reload apache2

Varsayılan siteyi devre dışı bırakmak isterseniz:

sudo a2dissite 000-default.conf

Adım 5 – /etc/hosts Dosyasına Ekleme (Test Amaçlı)

Eğer DNS yönlendirmesi yapılmadıysa, test amacıyla yerel host dosyasına aşağıdaki satırları ekleyebilirsiniz:

sudo nano /etc/hosts
192.168.1.10 site1.com
192.168.1.10 site2.com

Adım 6 – Yapılandırmayı Doğrulama

Apache konfigürasyon hatalarını kontrol edin:

sudo apache2ctl configtest
# veya CentOS için
sudo httpd -t

Çıktıda Syntax OK görüyorsanız yapılandırma doğrudur.

Adım 7 – Apache’yi Yeniden Başlatma

sudo systemctl restart apache2

Artık http://site1.com ve http://site2.com adresleri erişilebilir olmalıdır.

HTTPS (SSL) Desteği Eklemek

Let’s Encrypt ile ücretsiz SSL kurulumu yapmak için:

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d site1.com -d www.site1.com

Sertifikalar 90 günde bir otomatik yenilenir (certbot renew cronjob ile).

VirtualHost Yönetimi (Kısa Komutlar)

# Etkin site listesini göster
sudo apache2ctl -S

# Site devre dışı bırak
sudo a2dissite site1.com.conf

# Siteyi tekrar etkinleştir
sudo a2ensite site1.com.conf

Performans ve Güvenlik Önerileri

  • Her site için ayrı log dosyası tutarak analiz kolaylığı sağlayın.
  • Directory listing’i kapatın: Options -Indexes.
  • Gzip sıkıştırmasını etkinleştirin (mod_deflate).
  • PHP-FPM veya mod_proxy_fcgi ile dinamik içerik performansını artırın.
  • Yoğun trafik altında HostLigo Premium VDS çözümlerini tercih edin.

Sonuç

Apache VirtualHost yapılandırması, tek bir sunucu üzerinde çoklu site barındırmayı kolaylaştırır. Her domain’in izole edilmiş yapısı, yönetim, güvenlik ve performans açısından avantaj sağlar. SSL desteği, log yönetimi ve doğru izinlerle birlikte, Apache web sunucusu kurumsal düzeyde ölçeklenebilir bir altyapı sunar. Daha yüksek performans ve güvenlik için HostLigo’nun Linux Hosting ve Premium VDS hizmetlerini değerlendirebilirsiniz.

Bir Yorum Yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Benzer Yazılar