İpuçları

Apache Web Sunucusu Kurulumu Ve Temel Ayarları

Web sitenizin internet üzerindeki varlığını sağlamanın temelinde yatan teknoloji, genellikle bir web sunucusu tarafından yönetilir. Bu sunuculardan en yaygın ve köklü olanlardan biri de Apache HTTP Server’dır. Peki, bu güçlü ve esnek yazılım tam olarak nedir ve bir web sitesi için neden bu kadar önemlidir? Apache, açık kaynak kodlu, platform bağımsız ve oldukça yetenekli bir web sunucu yazılımıdır. Dünya genelindeki web sitelerinin büyük bir kısmının altyapısını oluşturan Apache, sunduğu modüler yapısı ve geniş yapılandırma seçenekleriyle geliştiricilere ve sistem yöneticilerine büyük bir esneklik tanır. Bu makalede, Apache’nin ne olduğunu derinlemesine inceleyecek, temel kurulum adımlarını ve en kritik yapılandırma ayarlarını pratik örneklerle açıklayacağız. Amacımız, Apache’yi yalnızca bir isim olarak değil, web altyapınızın sağlam bir temeli olarak anlamanızı sağlamak.

Apache’nin Temel İşleyiş Mekanizması

Apache’nin kalbinde, istemcilerden gelen HTTP isteklerini dinleyen ve işleyen bir ana işlemci (daemon) bulunur. Bu ana işlemci, gelen bağlantıları kabul eder ve her bir istek için ayrı bir alt işlemci (child process) veya iş parçacığı (thread) oluşturarak yanıt üretir. Bu model, aynı anda birden fazla kullanıcının web sitesine erişebilmesini sağlar. Apache’nin en büyük avantajlarından biri, esnek modüler mimarisidir. Çekirdek sunucuya ek olarak, SSL/TLS desteği (mod_ssl), URL yeniden yazma (mod_rewrite), sıkıştırma (mod_deflate) ve kimlik doğrulama (mod_auth_basic) gibi birçok farklı işlevi yerine getiren modüller, ihtiyaç duyulduğunda etkinleştirilebilir. Örneğin, bir sitenin güvenli bağlantı (HTTPS) kullanması gerekiyorsa, sadece mod_ssl modülü yüklenip yapılandırılır. Bu modülerlik, sunucunun gereksiz yüklerden arındırılmasını ve sadece gerekli işlevlerin çalıştırılmasını sağlayarak performansı artırır. Bir diğer önemli özellik ise .htaccess dosyaları aracılığıyla dizin bazlı yapılandırma yapabilme yeteneğidir. Bu, hosting firmalarının her müşteri için ayrı yapılandırma dosyaları yönetmek yerine, kullanıcıların kendi dizinlerinde basit yönlendirmeler veya erişim kısıtlamaları yapabilmelerine olanak tanır.

Apache Kurulumu: Adım Adım Rehber (Ubuntu Örneği)

Apache kurulumu, kullandığınız işletim sistemine göre değişiklik gösterse de, Linux tabanlı sistemlerde süreç genellikle benzerdir. Ubuntu üzerinde kurulum için aşağıdaki adımları izleyebilirsiniz:

  1. Paket Güncelleme: Öncelikle sistem paket listenizi güncelleyin:
    sudo apt update
  2. Apache Kurulumu: Apache2 paketini kurun:
    sudo apt install apache2

    Bu komut, Apache sunucusunu ve gerekli bağımlılıkları otomatik olarak kuracaktır.

  3. Güvenlik Duvarı Ayarı: Apache’nin web trafiğine izin vermesi için güvenlik duvarınızı (ufw) yapılandırmanız gerekir. Genellikle ‘Apache Full’ profili hem HTTP (80 port) hem de HTTPS (443 port) trafiğine izin verir:
    sudo ufw allow 'Apache Full'

    Güvenlik duvarının aktif olduğundan emin olun:

    sudo ufw enable
  4. Sunucu Durumunu Kontrol Etme: Kurulumun başarılı olup olmadığını ve Apache’nin çalışıp çalışmadığını kontrol etmek için servisin durumunu sorgulayabilirsiniz:
    sudo systemctl status apache2

    Çıktıda ‘active (running)’ ibaresini görmelisiniz.

  5. IP Adresini Kontrol Etme: Web tarayıcınızda http://sunucu_ip_adresi adresine giderek Apache’nin varsayılan karşılama sayfasını görmelisiniz. Sunucu IP adresinizi öğrenmek için ip addr show eth0 | grep inet | awk '{print $2}' | cut -d/ -f1 gibi komutları kullanabilirsiniz.

Bu adımlar tamamlandığında, temel Apache kurulumunuz hazır demektir. Artık sanal ana bilgisayar (virtual host) yapılandırmaları ile birden fazla web sitesini aynı sunucuda barındırmaya başlayabilirsiniz.

Temel Apache Yapılandırma Ayarları

Apache’nin ana yapılandırma dosyası genellikle /etc/apache2/apache2.conf yolunda bulunur. Ancak, daha modüler bir yapı için sitelerinizle ilgili ayarlar /etc/apache2/sites-available/ dizinindeki dosyalarda tutulur ve /etc/apache2/sites-enabled/ dizinine sembolik linklerle bağlanır. Yeni bir site eklemek için genellikle /etc/apache2/sites-available/ altına yeni bir yapılandırma dosyası (örneğin siteadi.conf) oluşturulur. Bu dosya içinde en kritik direktiflerden bazıları şunlardır:

  • ServerAdmin: Sunucu yöneticisinin e-posta adresini belirtir. Hata durumlarında bu adrese bildirim gönderilir.
  • DocumentRoot: Web sitesinin dosyalarının bulunduğu ana dizini gösterir. Örneğin, DocumentRoot /var/www/siteadi.
  • ServerName: Sitenizin alan adını belirtir. Örneğin, ServerName siteadi.com. Bu, özellikle birden fazla siteyi aynı IP üzerinde barındırırken önemlidir.
  • ErrorLog ve CustomLog: Hata ve erişim günlüklerinin kaydedileceği dosyaların yollarını belirtir. Bu loglar, sorun giderme ve performans analizi için hayati öneme sahiptir.

Yapılandırma dosyasında yapılan değişikliklerin etkinleşmesi için Apache servisini yeniden başlatmanız gerekir:

sudo systemctl restart apache2

Eğer bir .htaccess dosyası kullanıyorsanız, Apache’nin bu dosyalardaki yönergeleri okumasını sağlamak için sanal ana bilgisayar yapılandırmanızda AllowOverride All direktifini eklemeniz gerekebilir. Ancak, güvenlik nedeniyle genellikle sadece gerekli direktiflerin (örneğin AllowOverride FileInfo) etkinleştirilmesi önerilir.

Performans ve Güvenlik Optimizasyonu

Apache’nin performansını ve güvenliğini artırmak için yapılabilecek birçok optimizasyon vardır. Performans açısından, mod_deflate modülünü etkinleştirerek web sayfalarınızın sıkıştırılmış olarak gönderilmesini sağlayabilirsiniz. Bu, özellikle metin tabanlı içeriklerin aktarım hızını önemli ölçüde artırır. Ayrıca, mod_expires modülü ile tarayıcı önbelleğe alma (caching) sürelerini ayarlayarak, tekrar eden ziyaretlerde sayfa yüklenme sürelerini kısaltabilirsiniz. Güvenlik tarafında ise, gereksiz modülleri devre dışı bırakmak, Apache’nin sürüm bilgisini gizlemek (ServerTokens Prod ve ServerSignature Off direktifleri ile) ve güçlü kimlik doğrulama mekanizmaları kullanmak önemlidir. Ayrıca, mod_security gibi bir web uygulama güvenlik duvarı (WAF) modülü kurarak, SQL injection ve cross-site scripting (XSS) gibi yaygın saldırılara karşı ek bir koruma katmanı oluşturabilirsiniz. Yapılandırma dosyalarınızı düzenli olarak gözden geçirmek ve güncel tutmak, hem performansı hem de güvenliği en üst düzeyde tutmanın anahtarıdır.

Apache nedir ve ne işe yarar?

Apache HTTP Server, web sitelerinin internet üzerinde yayınlanmasını sağlayan açık kaynak kodlu bir web sunucusu yazılımıdır. İstemcilerden gelen HTTP isteklerini alıp, ilgili web sayfalarını, resimleri veya diğer dosyaları tarayıcılara göndererek çalışır.

Apache kurulumu hangi işletim sistemlerinde daha yaygındır?

Apache, platform bağımsız olmasına rağmen, özellikle Linux tabanlı işletim sistemlerinde (Ubuntu, CentOS, Debian gibi) kurulumu ve yönetimi oldukça yaygındır ve tercih edilir.

Apache’nin modüler yapısı ne anlama gelir?

Modüler yapı, Apache’nin temel işlevlerine ek olarak, ihtiyaç duyulan özelliklerin (SSL, URL yönlendirme, sıkıştırma vb.) modüller aracılığıyla kolayca eklenebilmesi anlamına gelir. Bu, sunucuyu gereksiz yüklerden arındırır ve performansı optimize eder.

.htaccess dosyaları ne için kullanılır?

.htaccess dosyaları, dizin bazlı yapılandırma yapmaya olanak tanır. Bu sayede, sunucu yapılandırma dosyasına erişimi olmayan kullanıcılar bile kendi dizinlerinde URL yönlendirmeleri, erişim kısıtlamaları gibi ayarları yapabilirler.

Apache’de performans artışı için hangi modüller kullanılabilir?

Performans artışı için mod_deflate (sıkıştırma) ve mod_expires (önbellekleme) gibi modüller oldukça etkilidir. Bu modüller, veri aktarım hızını artırır ve sayfa yüklenme sürelerini kısaltır.

Apache ile Nginx arasındaki temel farklar nelerdir?

Apache, olay tabanlı yerine işlem/iş parçacığı tabanlı çalışırken (eski sürümlerde), Nginx olay tabanlı asenkron bir mimariye sahiptir. Bu durum, Nginx’i yüksek eş zamanlı bağlantılarda daha performanslı hale getirebilir. Apache ise modüler yapısı ve .htaccess desteği ile daha esnek bir yapı sunar.

Daha Fazla Göster

İlgili Makaleler

Bir yanıt yazın

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

Başa dön tuşu