sunucuhataları
teknik çözüm merkezi
Ara Giriş Yap Üye Ol
🏠 Ana Sayfa 📚 Kurulum Rehberleri
Kategoriler
🌐 Web Sunucuları 🐧 İşletim Sistemleri 📦 Sanallaştırma & VPS 🖥️ Kontrol Panelleri 🔒 SSL & Güvenlik 📝 CMS & Uygulamalar 🗄️ Veritabanı 📧 Mail Sunucusu 🗨️ Forum ℹ️ Hakkımızda 📧 İletişim
Giriş Yap Üye Ol
Ana Sayfa Web Sunucuları Nginx vs Apache: Fark Nedir, Hangisi Daha Hızlı?
🌐 Web Sunucuları

Nginx vs Apache: Fark Nedir, Hangisi Daha Hızlı?

Nginx ve Apache, web sunucusu pazarının iki devridir. Async vs thread mimari farkı, statik dosya performansı ve PHP entegrasyonunu karşılaştırıyoruz.

📅 25 Nisan 2025 👁 11 görüntülenme ⏱ 5 dk okuma
𝕏 Paylaş
📋 İçindekiler göster/gizle

Nginx ve Apache: Kısa Tarih

Apache HTTP Server, 1995 yılında ortaya çıkmış ve uzun yıllar boyunca web sunucusu pazarının tartışmasız lideri olmuştur. Modüler mimarisi ve esnek yapılandırması ile her türlü ihtiyaca uyum sağlayabilmesi gücünün kaynağıdır.

Nginx (okunuşu: "engine-x"), 2004 yılında Igor Sysoev tarafından Apache'nin yüksek eş zamanlı bağlantı sorununu çözmek amacıyla geliştirilmiştir. Bugün dünya genelinde en popüler web sunucularından biri haline gelmiştir.

Temel Mimari Fark

Apache: Process/Thread Tabanlı (Eşzamanlı)

Apache, her gelen isteği işlemek için yeni bir süreç (process) veya iş parçacığı (thread) oluşturur. Bu model basit ve anlaşılırdır; ancak eş zamanlı bağlantı sayısı arttıkça RAM ve CPU tüketimi doğrusal biçimde artar.

# Apache MPM modelleri
# Prefork: Her istek için ayrı süreç (güvenli ama yavaş)
# Worker: Thread tabanlı (daha verimli)
# Event: Async benzeri (en verimli Apache modeli)

Nginx: Asenkron, Olay Tabanlı (Event-Driven)

Nginx, asenkron ve olay tabanlı (event-driven) mimarisiyle çalışır. Tek bir worker process binlerce eş zamanlı bağlantıyı işleyebilir. Bu mimari, özellikle çok sayıda eş zamanlı bağlantının söz konusu olduğu durumlarda büyük avantaj sağlar.

# Nginx worker yapılandırması
worker_processes auto;  # CPU çekirdek sayısına göre otomatik ayarla
events {
    worker_connections 1024;  # Her worker kaç bağlantı işleyebilir
}

Performans Karşılaştırması

Statik Dosya Sunumu

Nginx, statik dosyaları (HTML, CSS, JS, resim) sunmakta Apache'ye göre belirgin biçimde daha hızlıdır. Benchmark testleri Nginx'in statik dosyalarda Apache'ye kıyasla %2-3 kat daha fazla istek işleyebildiğini göstermektedir.

Dinamik İçerik (PHP)

PHP uygulamaları için her iki sunucu da PHP-FPM ile çalışır. Bu durumda fark minimale iner; ancak Nginx hafıza kullanımındaki verimliliği sayesinde yüksek trafikte avantajını korur.

Bellek Kullanımı

Nginx, yüksek yük altında Apache'ye kıyasla çok daha az bellek kullanır. Apache'de her bağlantı için yeni bir süreç veya thread oluşturulduğundan bellek tüketimi hızla artar.

PHP ile Kullanım

Apache'de PHP

# Apache ile mod_php (eski yöntem)
LoadModule php_module /usr/lib/apache2/modules/libphp8.2.so

# Apache ile PHP-FPM (önerilen)
<FilesMatch \.php$>
    SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost"
</FilesMatch>

Apache, mod_php modülü sayesinde PHP'yi doğrudan kendi süreci içinde çalıştırabilir. Bu kurulumu kolaydır ancak bellek açısından verimsizdir.

Nginx'de PHP

# Nginx ile PHP-FPM (tek desteklenen yöntem)
location ~ \.php$ {
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

Nginx, PHP'yi doğrudan çalıştıramaz ve mutlaka PHP-FPM gibi harici bir FastCGI uygulamasına ihtiyaç duyar. Bu extra kurulum adımı gerektirse de daha iyi performans sunar.

URL Yeniden Yazma (Rewrite)

Apache: mod_rewrite ve .htaccess

# .htaccess ile WordPress URL yeniden yazma
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Apache'nin .htaccess dosyası, sunucuya erişmeksizin dizin bazında yapılandırma yapılmasına olanak tanır. Bu özellik paylaşımlı hosting için idealdir.

Nginx: try_files

# Nginx ile WordPress URL yeniden yazma
location / {
    try_files $uri $uri/ /index.php?$args;
}

Nginx'in try_files direktifi daha hızlıdır çünkü .htaccess gibi her istekte disk okuma gerektirmez. Ancak .htaccess desteklenmediğinden tüm yapılandırma merkezi sunucu dosyasında yapılmalıdır.

Ne Zaman Nginx, Ne Zaman Apache Seçilmeli?

Nginx'i Seçin Eğer:

  • Yüksek trafikli, eş zamanlı bağlantı yoğunluğu olan bir site yönetiyorsunuz
  • Statik dosya sunumu veya reverse proxy ihtiyacınız var
  • Sınırlı sunucu kaynakları (RAM) ile maksimum performans istiyorsunuz
  • Mikroservis mimarisi veya API gateway kuruyorsunuz

Apache'yi Seçin Eğer:

  • Paylaşımlı hosting ortamında çalışıyorsunuz (.htaccess şart)
  • Karmaşık mod_rewrite kurallarına ihtiyacınız var
  • Ekibiniz Apache'ye alışkın ve kapsamlı dokümantasyon istiyorsunuz
  • Eski bir uygulamanın Apache'ye özel özelliklerini kullanıyorsunuz

Hibrit Yaklaşım: Nginx + Apache

Birçok modern hosting ortamında Nginx ve Apache birlikte kullanılır:

İnternet → Nginx (port 80/443) → Apache (port 8080) → PHP

Bu yapıda Nginx statik dosyaları ve SSL sonlandırmayı üstlenirken, Apache .htaccess desteğini sağlar. cPanel/WHM ortamlarında bu hibrit yaklaşım yaygındır.

Sonuç

Kesin bir "kazanan" yoktur; her ikisi de kendi senaryosunda mükemmeldir. Yüksek trafikli siteler ve kaynak verimliliği için Nginx; paylaşımlı hosting ve .htaccess bağımlı uygulamalar için Apache daha uygun tercih olacaktır. Mümkünse ikisini birlikte kullanarak her ikisinin güçlü yanlarından faydalanabilirsiniz.

🤔 Bu kurulumda sorun mu yaşıyorsunuz?

Hata mesajınızı kopyalayıp foruma konu açın. Topluluğumuz size özel durumunuza göre yardımcı olacaktır.

🗨️ Foruma Katıl & Yardım Al

Yorumlar

Henüz yorum yok. İlk yorumu siz yapın!

Yorum Yap

Yorumunuz onaylandıktan sonra yayınlanır.