Modern web altyapılarında apache nginx birlikte kullanmak, her iki sunucunun güçlü yönlerini birleştirerek yüksek performanslı ve ölçeklenebilir sistemler oluşturmayı
Modern web altyapılarında apache nginx birlikte kullanmak, her iki sunucunun güçlü yönlerini birleştirerek yüksek performanslı ve ölçeklenebilir sistemler oluşturmayı sağlar. Nginx, statik içerik sunma ve yük dengeleme konusunda üstünken, Apache dinamik içerik işleme ve modül zenginliğinde liderdir. Reverse proxy mimarisiyle Nginx’i ön uçta konumlandırarak Apache’yi arka planda çalıştırmak, trafiği verimli yönetir ve güvenlik katmanları ekler. Bu yaklaşım, özellikle yüksek trafikli sitelerde gecikmeyi minimize eder ve kaynak kullanımını optimize eder. Bu makalede, adım adım apache nginx birlikte çalıştırma sürecini inceleyeceğiz.
Apache ve Nginx’in birlikte çalıştırılması, her sunucunun uzmanlaştığı alanlarda fayda sağlar. Nginx, asenkron mimarisi sayesinde binlerce eşzamanlı bağlantıyı düşük bellek tüketimiyle yönetirken, Apache’nin .htaccess desteği ve geniş modül ekosistemi dinamik PHP uygulamaları için idealdir. Reverse proxy olarak Nginx kullanmak, Apache’yi doğrudan internete maruz bırakmadan korur; SSL sonlandırma, önbellekleme ve rate limiting gibi özellikler trafiği filtreler. Bu kombinasyon, özellikle WordPress gibi CMS’lerde statik dosyaları Nginx’e, dinamikleri Apache’ye yönlendirerek %30-50’ye varan performans artışı sağlar.
Uygulamada, bu yapı ölçeklenebilirliği artırır. Örneğin, birden fazla Apache instance’ını Nginx arkasında yük dengelemek, tek nokta arızasını önler. Maliyet açısından da avantajlıdır; mevcut Apache sunucularınızı Nginx proxy’si ile modernize edebilirsiniz. Kurumsal ortamlarda, bu setup log yönetimi ve izlemeyi kolaylaştırır, zira Nginx access log’ları ile Apache error log’larını entegre etmek mümkündür.
Apache nginx birlikte kullanımında ilk adım, Nginx’i ana giriş noktası yapmaktır. Ubuntu tabanlı sistemlerde şu komutlarla Nginx’i kurun: sudo apt update && sudo apt install nginx. Ardından Apache’yi varsayılan 80 portu yerine 8080’e taşıyın: Apache config dosyasında (/etc/apache2/ports.conf) Listen 8080 ekleyin ve sudo systemctl restart apache2 ile yeniden başlatın.
Nginx site config’ini oluşturun (/etc/nginx/sites-available/default):
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Config’i test edin (sudo nginx -t) ve yeniden yükleyin (sudo systemctl reload nginx). Firewall kurallarını ayarlayın: sudo ufw allow 'Nginx Full'. Bu ayarlar, istekleri Nginx üzerinden Apache’ye proxy’ler ve orijinal client IP’sini korur. Statik dosyalar için ayrı location blokları ekleyerek (/images/, /css/ gibi) doğrudan Nginx servis ettirebilirsiniz, bu da hızı artırır.
Apache’yi proxy arkasında optimize etmek için mod_proxy ve mod_remoteip modüllerini etkinleştirin: sudo a2enmod proxy proxy_http remoteip. /etc/apache2/apache2.conf‘da RemoteIPHeader X-Forwarded-For ekleyin. Virtual host’larda ServerName’i domain’inizle eşleştirin. Bu, Nginx’ten gelen trafiğin doğru IP ile loglanmasını sağlar ve güvenlik duvarlarını bypass etmez. Performans için mpm_event modülünü kullanın ve MaxRequestWorkers’ı trafik yüküne göre ayarlayın (örneğin 150).
Sistemi test etmek için curl ile: curl -H "Host: example.com" http://localhost. Log’ları izleyin: tail -f /var/log/nginx/access.log ve /var/log/apache2/error.log. Yaygın sorunlar arasında proxy header eksikliği (502 Bad Gateway) veya port çakışması yer alır; bunları config syntax check ile giderin. SSL için Let’s Encrypt ile Nginx’e sertifika yükleyin ve proxy_pass’i https’ye uyarlayın. İzleme araçları gibi Prometheus entegrasyonu ekleyerek uptime’ı %99.9’a çıkarın.
Güvenlik için Nginx’te security headers ekleyin: add_header X-Frame-Options "SAMEORIGIN" always;. Apache’de mod_security kurun. Performansı artırmak üzere Nginx gzip compression’ı etkinleştirin ve Apache KeepAlive’i optimize edin. Bu apache nginx birlikte setup’ı, DDoS koruması için fail2ban ile güçlendirilebilir. Düzenli güncellemelerle (apt upgrade) güvenlik açıklarını kapatın.
Sonuç olarak, reverse proxy ile Apache ve Nginx’i entegre etmek, kurumsal web altyapılarınızı geleceğe hazırlar. Bu yapı, bakım kolaylığı ve esneklik sunarken, pratik adımları takip ederek hızlıca uygulayabilirsiniz. Deneyimlerinizi paylaşarak topluluğa katkı sağlayın ve sisteminizi sürekli izleyin.