Apache ve Nginx Nedir?
Bir web uygulaması ya da internet sitesi, yayına alındığında içeriklerin kullanıcıya ulaşmasını sağlayan sistem bileşenlerinden biri web sunucusudur. Apache HTTP Server, uzun yıllardır aktif kullanılan, dünya genelinde milyonlarca sunucuda görev alan güçlü bir platformdur. Esnek ve modüler yapısı ile kullanıcıya sunduğu özelleştirme imkânları, onu farklı kullanım senaryolarında ideal bir tercih haline getirir. Özellikle Plesk Apache Optimizasyon ayarlarıyla birlikte kullanıldığında, performans ve kaynak yönetimi açısından çok daha verimli hale getirilebilir. Genişletilebilir eklenti sistemi ve kullanıcı dostu yaklaşımıyla her seviyeden kullanıcıya hitap eder.
Nginx ise çok daha hafif ve ölçeklenebilir bir alternatif sunar. Özellikle yüksek trafikli web projelerinde kaynak tüketimi açısından etkili bir performans sağlar. Apache’den farklı olarak olay tabanlı mimarisi sayesinde binlerce bağlantıyı eş zamanlı olarak işleyebilir. Bu özelliği sayesinde çoğunlukla ön yüz proxy sunucu olarak tercih edilir. Özellikle Plesk Linux Nginx yapılandırmalarında, Nginx’in hafifliği ve performans avantajı Plesk’in kullanıcı dostu yönetim paneliyle birleşerek verimli bir hosting ortamı oluşturur.
Reverse Proxy Nedir?
Reverse Proxy terimi teknik gibi dursa da arkasındaki mantık oldukça sadedir. Kullanıcıdan gelen her istek önce bu sistem tarafından alınır, ardından ilgili arka uç sunucuya iletilir ve dönen yanıt kullanıcıya ulaştırılır. Bu süreçte kullanıcı, arka uçta hangi sunucu ile işlem yapıldığını bilmeden çalışır.
Bu işleyişin en sık karşılaşılan örneklerinden biri Nginx’tir. Nginx, HTTP isteklerini karşılarken, eğer istek dinamik veriye yönelikse, bunu Apache’ye iletir.
Apache işlemi yapar ve çıktıyı Nginx’e verir, ardından Nginx son yanıtı istemciye yönlendirir. Statik dosya sunumu Nginx tarafından yapılırken, sunucu taraflı kod Apache tarafından çalıştırılır. Reverse proxy, performans açısından büyük fayda sağlar çünkü sistemin yükü ikiye bölünür. Aynı zamanda güvenlik katmanı oluşturarak arka uç sunucuyu dış tehditlere karşı korur. Trafik yönlendirme, önbellekleme ve SSL çözümlemesi gibi özellikler de kolayca entegre edilir.
Apache Web Sunucusunun Kurulumu
sudo dnf install httpd -y
systemctl enable httpd
sudo systemctl start httpd
Apache’nin durum kontrolü;
sudo systemctl status httpd
Yapılandırma ve içerik dizinleri:
/etc/httpd/conf/httpd.conf
/var/www/html/
Nginx’in Kurulumu ve Reverse Proxy Yapılandırması
sudo dnf install nginx -y
systemctl enable nginx
sudo systemctl start nginx
Apache’nin portu değiştirmek için bu adımı izleyelim.
sudo nano /etc/httpd/conf/httpd.conf
Listen 80
satırını şu şekilde değiştirelim;
Listen 8080
Apache yeniden başlatılıyor
sudo systemctl restart httpd
Nginx yapılandırma dosyası:
sudo nano /etc/nginx/conf.d/reverse-proxy.conf
İçeriği:
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Nginx test edilip başlatalım.
sudo nginx -t
sudo systemctl restart nginx
Güvenlik Duvarı ve SELinux Ayarları
sudo firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https firewall-cmd --reload
sudo setsebool -P httpd_can_network_connect 1
Kurulum Sonrası Test
Tarayıcı üzerinden http://sunucu-ip-adresi
kontrol edilir ya da:
curl -I http://localhost
Kullanıcı Sorunları Ve Çözüm Önerileri
Nginx ve Apache birlikte neden tercih edilir?
Nginx, özellikle eş zamanlı bağlantı sayısı yüksek projelerde performansıyla öne çıkar. Apache ise PHP ve benzeri sunucu taraflı uygulamalarda modüler mimarisiyle avantaj sağlar. Bu iki sistemin birlikte çalışması, hem hız hem de işlevsellik açısından daha dengeli bir çözüm sunar.
Neden Apache 8080 portuna yönlendirilir?
Her iki sunucu da 80 numaralı portu kullanmak istediği için aynı anda çalışmaları çakışmaya neden olur. Bu sorunu çözmek için genellikle Apache 8080 gibi alternatif bir porta alınır. Nginx, gelen istekleri 80 portu üzerinden alır ve gerektiğinde 8080’e yönlendirir. Bu yöntem iki sistemin birlikte çalışmasını mümkün kılar.
HTTPS yapılandırması nasıl olur?
Nginx, SSL işlemlerini üstlenerek HTTPS bağlantılarını doğrudan karşılayabilir. Bu yapı sayesinde güvenli bağlantı sağlanır ve arka uçtaki Apache’ye şifreli veri aktarımı yapılır. Üstelik ücretsiz Let’s Encrypt sertifikaları ile bu işlem birkaç komutla tamamlanabilir.
Yalnızca Nginx yeterli midir?
Statik içerik ağırlıklı web siteleri için Nginx tek başına fazlasıyla yeterlidir. Ancak PHP, veritabanı işlemleri ya da CMS sistemleri söz konusuysa Apache desteği önemli hale gelir. Bu gibi durumlarda Nginx ön yüzde, Apache ise işlemci olarak arka planda çalıştırılabilir.