WordPress, yazılım ve IT üzerine notlar
Anasayfa » Sunucu & Linux » Nginx mi Apache mi? Efsaneleri bir kenara bırakıp karar vermek

Nginx mi Apache mi? Efsaneleri bir kenara bırakıp karar vermek

İçindekiler
  1. Mimari fark
  2. Asıl fark: .htaccess
  3. Yapılandırma örneği
  4. İkisi birlikte
  5. Peki ben ne seçiyorum?
  6. Seçimden önemli olanlar

Bu tartışma neredeyse web sunucularının kendisi kadar eski. Forumlarda hâlâ "Apache ağırdır, Nginx'e geçin" tavsiyesi dolaşıyor. Bu tavsiye, Apache'nin varsayılan olarak prefork modunda ve mod_php ile çalıştığı döneme aitti. O kurulumda her bağlantı ayrı bir süreç demekti ve yoğun trafikte bellek hızla tükeniyordu.

Bugün durum farklı. Modern bir Apache kurulumu event MPM ve PHP-FPM ile çalışır, binlerce eşzamanlı bağlantıyı rahatça taşır. Yine de iki sunucunun gerçek farkları var.

Mimari fark

Nginx baştan olay güdümlü (event-driven) tasarlandı. Az sayıda işçi süreç, binlerce bağlantıyı aynı anda yönetir. Statik dosya sunmakta ve ters vekil (reverse proxy) olarak çalışmakta son derece verimlidir. PHP'yi kendisi çalıştırmaz; istekleri PHP-FPM'e iletir.

Apache'nin modüler bir mimarisi var ve farklı çalışma modları (MPM) sunar. event MPM ile Nginx'e yakın bir verimlilik elde edilir. PHP'yi modül olarak (mod_php) da, FPM üzerinden de çalıştırabilir.

Pratikte: Statik dosya yoğun, çok sayıda eşzamanlı bağlantı taşıyan bir sitede Nginx bellek kullanımında hâlâ öndedir. Ancak PHP uygulamalarında darboğaz neredeyse hiçbir zaman web sunucusu değil; PHP kodu ve veritabanıdır.

Asıl fark: .htaccess

Günlük kullanımda iki sunucuyu ayıran en önemli özellik budur.

Apache, dizin bazlı .htaccess dosyalarını okur. Bu sayede bir kullanıcı, sunucu yapılandırmasına erişmeden kendi klasöründe yönlendirme, erişim kısıtlaması ya da önbellek kuralı tanımlayabilir. WordPress, kalıcı bağlantılar için bu dosyayı kendisi yazar. Eklentilerin çoğu da kurallarını buraya ekler.

Nginx'te .htaccess yoktur. Bütün kurallar merkezi yapılandırmada durur ve değişiklik için sunucunun yeniden yüklenmesi gerekir. Bu daha hızlıdır, çünkü her istekte diskte dosya aranmaz. Daha güvenlidir, çünkü kullanıcılar sunucu davranışını değiştiremez. Ama daha az esnektir.

Bu yüzden:

  • Paylaşımlı hosting ve kullanıcıların kendi ayarlarını yaptığı paneller için Apache neredeyse standarttır.
  • Tek bir uygulamanın çalıştığı ve yapılandırmayı sizin yönettiğiniz sunucularda Nginx daha sade ve öngörülebilirdir.

Yapılandırma örneği

Aynı WordPress kalıcı bağlantı kuralı iki sunucuda şöyle görünür.

Apache (.htaccess):

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Nginx (sunucu bloğu):

location / {
    try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_pass unix:/run/php-fpm/www.sock;
}

İkisi birlikte

Çok yaygın bir düzen, ikisini birlikte kullanmaktır: Nginx önde durur, statik dosyaları ve TLS'i karşılar, dinamik istekleri arkadaki Apache'ye iletir. Böylece .htaccess uyumluluğu korunur, statik içerik de Nginx'in verimliliğiyle sunulur. Pek çok hosting paneli bu düzeni tek tıkla sunar.

Bunun bedeli, bir katman daha yönetmektir. Gerçek ziyaretçi IP'sinin arkadaki sunucuya doğru aktarılması gibi küçük ama önemli ayarlar gerekir (X-Forwarded-For, Apache tarafında mod_remoteip).

Peki ben ne seçiyorum?

  • Birden fazla kullanıcılı hosting sunucusu: Apache (event MPM + PHP-FPM). Gerekirse önüne Nginx.
  • Tek bir WordPress sitesi, kendi VPS'im: İkisi de olur. Eklentilerin .htaccess kuralına ihtiyaç duyma ihtimali varsa Apache, yoksa Nginx.
  • Node.js, Python, Go gibi uygulamaların önünde ters vekil: Nginx (ya da otomatik TLS istiyorsanız Caddy).
  • Yüksek trafikli statik içerik ya da dosya indirme sunucusu: Nginx.

Seçimden önemli olanlar

Hangi sunucuyu seçerseniz seçin, performansa asıl etkiyi şunlar yapar: PHP-FPM havuz ayarları, OPcache'in açık olması, sayfa önbelleği, sıkıştırma (gzip ya da brotli) ve HTTP/2. Yanlış ayarlanmış bir Nginx, iyi ayarlanmış bir Apache'den yavaştır.

Tezcan Kabakçı
Hosting teknik destek uzmanı ve WordPress uzmanı. 2024'ten beri bir hosting şirketinde teknik destek bölümünde çalışıyor; WordPress, DNS ve e-posta sorunlarını her gün yakından görüyor. YouTube kanalı.
Bu yazı 3 Kasım 2026 tarihinde Sunucu & Linux kategorisinde yayınlandı.
Yeni yazılar e-postanıza gelsin

Ayda birkaç e-posta; istediğiniz an tek tıkla ayrılabilirsiniz.

Videolu anlatımlar YouTube'da
Sunucu ve WordPress sorunlarını kısa videolarla anlattığım kanala abone olabilirsiniz. ▶ Kanala abone ol

Yorumlar

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

Yorum yazın

Yorumlar onaylandıktan sonra yayımlanır. Bağlantı içeren yorumlar spam olarak değerlendirilebilir.