Apache vs Nginx: Web Sunucu Karşılaştırması

z

zafer ak

Yazar

28 December 2025 3 dakika okuma 318 görüntülenme
Apache vs Nginx: Web Sunucu Karşılaştırması
Apache ve Nginx web sunucularının detaylı karşılaştırması. Performans, yapılandırma, kullanım senaryoları ve hangisini seçmelisiniz.

Apache ve Nginx, dünyanın en popüler iki web sunucusudur. Her birinin güçlü ve zayıf yönleri vardır.

Web Server

Genel Bakış

Özellik Apache Nginx
İlk Sürüm 1995 2004
Mimari Process/Thread-based Event-driven, async
Yapılandırma .htaccess destekli Merkezi config
Modüller Dinamik yükleme Derleme zamanında
Statik İçerik İyi Mükemmel
Dinamik İçerik mod_php ile native FastCGI ile

Apache Avantajları

  • .htaccess: Dizin bazlı yapılandırma (shared hosting)
  • mod_php: PHP'yi doğrudan çalıştırma
  • Esneklik: Dinamik modül yükleme
  • Dokümantasyon: Kapsamlı ve köklü
  • Uyumluluk: Eski uygulamalar için

Apache Yapılandırma Örneği

# /etc/apache2/sites-available/example.conf
<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example

    <Directory /var/www/example>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/example_error.log
    CustomLog ${APACHE_LOG_DIR}/example_access.log combined
</VirtualHost>

# .htaccess örneği
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
Server Configuration

Nginx Avantajları

  • Performans: Yüksek eşzamanlı bağlantı
  • Bellek: Düşük bellek kullanımı
  • Reverse Proxy: Mükemmel proxy/load balancer
  • Statik dosyalar: Çok hızlı servis
  • Modern: HTTP/2, WebSocket native

Nginx Yapılandırma Örneği

# /etc/nginx/sites-available/example.conf
server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~* \.(css|js|jpg|jpeg|png|gif|ico|svg|woff2)$ {
        expires 1y;
        add_header Cache-Control "public, immutable";
    }
}

Performans Karşılaştırması

# Benchmark sonuçları (yaklaşık)
# 10,000 eşzamanlı bağlantı, statik dosya

Apache (prefork):
- Bellek: ~500MB
- İstek/saniye: 5,000

Apache (event):
- Bellek: ~200MB
- İstek/saniye: 8,000

Nginx:
- Bellek: ~50MB
- İstek/saniye: 15,000

Kullanım Senaryoları

Apache Tercih Edin:

  • Shared hosting ortamı
  • .htaccess ihtiyacı
  • mod_php gerekliliği
  • Eski uygulama uyumluluğu
  • Dinamik modül yükleme

Nginx Tercih Edin:

  • Yüksek trafik
  • Statik içerik ağırlıklı
  • Reverse proxy/load balancer
  • Mikroservisler
  • Container ortamları
High Performance Server

Hibrit Yaklaşım

Nginx reverse proxy + Apache backend:

# Nginx frontend
upstream apache_backend {
    server 127.0.0.1:8080;
}

server {
    listen 80;
    server_name example.com;

    # Statik dosyalar Nginx'den
    location ~* \.(css|js|jpg|png|gif|ico)$ {
        root /var/www/example;
        expires 1y;
    }

    # PHP Apache'ye
    location / {
        proxy_pass http://apache_backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

# Apache backend (port 8080)
Listen 8080
<VirtualHost *:8080>
    DocumentRoot /var/www/example
    # ... PHP yapılandırması
</VirtualHost>

Sonuç

Modern projeler için genellikle Nginx tercih edilir. Ancak .htaccess veya mod_php gerekliyse Apache hala geçerli bir seçenektir. İkisini birlikte kullanmak da mümkündür.

İlgili Yazılar