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 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.
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]
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ı
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.