Ubuntu Sunucuda Apache VirtualHost

Ubuntu sunucularında Apache web sunucusunu kullanarak birden fazla web sitesini aynı fiziksel sunucuda barındırmak, kaynakları verimli yönetmenin en etkili yollarından

Ubuntu sunucularında Apache web sunucusunu kullanarak birden fazla web sitesini aynı fiziksel sunucuda barındırmak, kaynakları verimli yönetmenin en etkili yollarından biridir. Apache VirtualHost özelliği, her bir web sitesini ayrı bir konfigürasyon bloğu ile tanımlamanıza olanak tanır. Bu yapılandırma sayesinde, farklı domain adları veya alt domainler için özgün dizinler, log dosyaları ve hatta farklı PHP sürümleri belirleyebilirsiniz. Özellikle kurumsal ortamlarda, geliştirme, test ve üretim ortamlarını ayırmak için idealdir. Bu makalede, Ubuntu sunucusunda Apache VirtualHost’un adım adım kurulumunu, yapılandırmasını ve en iyi uygulamalarını ele alacağız. Pratik talimatlarla, sunucunuzu hızlıca hazır hale getireceksiniz.

Apache VirtualHost Kavramı ve Avantajları

Apache VirtualHost, HTTP isteklerini domain adına göre yönlendiren bir modüldür. Name-based virtual hosting ile aynı IP adresi üzerinden birden fazla site çalıştırabilir, IP-based hosting ile ise her site için ayrı IP kullanabilirsiniz. Bu yaklaşım, sunucu maliyetlerini düşürür ve ölçeklenebilirlik sağlar. Kurumsal projelerde, her müşteri sitesini izole etmek güvenlik ve bakım açısından kritiktir.

VirtualHost’un temel avantajları arasında, her site için bağımsız loglama, erişim kontrolleri ve performans optimizasyonları yer alır. Örneğin, bir e-ticaret sitesi için yüksek trafik yönetimi yaparken, statik bir kurumsal siteyi düşük kaynakla barındırabilirsiniz. Ubuntu’nun Apache paketi (apache2), bu özelliği varsayılan olarak destekler ve /etc/apache2/sites-available dizini üzerinden yönetilir.

Name-Based ve IP-Based Hosting Farkları

Name-based hosting, en yaygın yöntemdir ve Host başlığına göre yönlendirme yapar. Birden fazla domain’i tek IP ile yönetmek için idealdir. IP-based ise her siteye benzersiz IP atar, eski tarayıcılar veya belirli güvenlik gereksinimleri için uygundur. Kurulumda, name-based’i tercih edin; /etc/hosts dosyasını düzenleyerek yerel test yapabilirsiniz. Bu ayrım, trafik dağılımını optimize eder ve sunucu yükünü dengeler, özellikle 1000+ ziyaretçili sitelerde fark yaratır.

VirtualHost’un Güvenlik Katkıları

Her VirtualHost bloğu, DocumentRoot, ServerName ve Directory izinlerini ayrı tanımlar. Bu sayede, bir sitenin hacklenmesi diğerlerini etkilemez. .htaccess dosyalarıyla IP kısıtlamaları ekleyebilir, mod_security ile WAF entegrasyonu yapabilirsiniz. Ubuntu’da UFW firewall ile VirtualHost portlarını (80, 443) yönetin; bu, DDoS saldırılarına karşı koruma sağlar ve kurumsal uyumluluğu artırır.

Ubuntu’da Apache VirtualHost Kurulumu

Ubuntu 20.04 veya 22.04 LTS sürümlerinde başlayın. Önce Apache’yi güncelleyin: sudo apt update && sudo apt upgrade -y. Ardından apache2 paketini yükleyin: sudo apt install apache2 -y. Sistem servisini etkinleştirin: sudo systemctl enable apache2 && sudo systemctl start apache2. Varsayılan siteyi devre dışı bırakın: sudo a2dissite 000-default.conf && sudo systemctl reload apache2. Artık /etc/apache2/sites-available/ dizinine yeni konfigürasyon dosyaları oluşturabilirsiniz.

İlk VirtualHost için örnek site dizini oluşturun: sudo mkdir -p /var/www/ornek-site/public_html. Sahipliği ayarlayın: sudo chown -R www-data:www-data /var/www/ornek-site. İndeks dosyası ekleyin: echo “<html><body><h1>Örnek Site</h1></body></html>” | sudo tee /var/www/ornek-site/public_html/index.html.

Yeni VirtualHost Dosyası Oluşturma

/etc/apache2/sites-available/ornek-site.conf dosyasını oluşturun: sudo nano /etc/apache2/sites-available/ornek-site.conf. İçeriği şu şekilde yapılandırın:

  • <VirtualHost *:80>
  • ServerName ornek-site.com
  • ServerAlias www.ornek-site.com
  • DocumentRoot /var/www/ornek-site/public_html
  • ErrorLog ${APACHE_LOG_DIR}/ornek-site_error.log
  • CustomLog ${APACHE_LOG_DIR}/ornek-site_access.log combined
  • </VirtualHost>

Siteden etkinleştirin: sudo a2ensite ornek-site.conf && sudo systemctl reload apache2. DNS kaydınızı A tipiyle sunucu IP’sine yönlendirin. Bu adımlar, 5 dakikada çalışan bir VirtualHost sağlar.

Çoklu VirtualHost Yönetimi

İkinci site için aynı adımları tekrarlayın, farklı ServerName ve DocumentRoot ile. sites-available dizinindeki tüm .conf dosyalarını a2ensite ile etkinleştirin. Apache’nin mod_rewrite ve mod_ssl gibi modülleri etkinleştirin: sudo a2enmod rewrite ssl. Yeniden yükleyin. Bu yöntemle 10+ siteyi sorunsuz yönetebilirsiniz; her birinin loglarını /var/log/apache2/ altında izleyin.

VirtualHost Optimizasyonu ve Test

Yapılandırmayı test etmek için apache2ctl configtest komutunu çalıştırın; syntax hatalarını önler. curl -H “Host: ornek-site.com” http://sunucu-ip ile yerel test yapın. Gerçek test için domain DNS’ini bekleyin veya /etc/hosts’a ekleyin: 127.0.0.1 ornek-site.com. Performansı artırmak için mpm_event modülünü etkinleştirin: sudo a2enmod mpm_event && sudo systemctl restart apache2.

Gelişmiş optimizasyonlarda, her VirtualHost için ayrı PHP-FPM havuzu tanımlayın. /etc/php/8.1/fpm/pool.d/ altında ornek-site.conf oluşturun ve www.conf’yi kopyalayın. Bu, bellek kullanımını %30 azaltır. Cache için mod_cache etkinleştirin ve Opcode cache’i açın.

SSL/HTTPS Entegrasyonu

Let’s Encrypt ile ücretsiz SSL alın: sudo apt install certbot python3-certbot-apache -y. sudo certbot –apache -d ornek-site.com ile otomatik konfigürasyon yapın. VirtualHost bloğuna <VirtualHost *:443> ekleyin, SSLEngine on ve sertifika yollarını belirtin. Otomatik yenileme için cron job ekleyin: sudo crontab -e ile 0 12 * * * /usr/bin/certbot renew –quiet. Bu, kurumsal siteler için PCI DSS uyumluluğunu sağlar.

Sorun Giderme İpuçları

404 hatalarında DocumentRoot izinlerini kontrol edin: sudo chmod -R 755 /var/www/. 500 hataları için error_log’ları inceleyin: tail -f /var/log/apache2/ornek-site_error.log. Port çakışmalarında netstat -tuln | grep :80 ile bakın. Firewall’u açın: sudo ufw allow ‘Apache Full’. Bu adımlar, %95 sorunları çözer ve uptime’ı artırır.

Apache VirtualHost ile Ubuntu sunucunuzu profesyonel bir hosting ortamına dönüştürebilirsiniz. Düzenli güncellemeler ve monitoring araçları (örneğin, Munin veya Prometheus) ile entegre edin. Bu yapı, ölçeklenebilir ve güvenli web servisleri için temel oluşturur, kurumsal ihtiyaçlarınızı karşılayarak zaman ve maliyet tasarrufu sağlar.

Kategori: Blog
Yazar: Editör
İçerik: 693 kelime
Okuma Süresi: 5 dakika
Zaman: Bugün
Yayım: 16-03-2026
Güncelleme: 16-03-2026
Benzer Hizmetler
Blog kategorisinden ilginize çekebilecek benzer hizmetler
Copyright © 2025, İzmir Seo Firması