AlmaLinux Üzerinde Apache + Nginx Proxy Kurulumu

Apache ve Nginx Nedir?

İnternette erişilebilir hale gelen bir web sitesi ya da uygulama, bu içeriği son kullanıcıya iletecek sunucu sistemine ihtiyaç duyar. Apache HTTP Server, bu alanda uzun yıllardır kullanılan ve başarısı kanıtlanmış bir çözümdür. Sağladığı modüler yapı, güçlü topluluk desteği ve esnek yapılandırma imkânı sayesinde her düzeyde kullanıcıya hitap eder. Genişletilebilir eklenti sistemiyle yeni başlayanlardan deneyimli sistem yöneticilerine kadar birçok farklı profil tarafından tercih edilir. LiteSpeed gibi yeni nesil panellerle kıyaslandığında, konfigürasyon özgürlüğüyle fark yaratır.

Nginx ise yüksek trafikli ve hızlı yanıt gerektiren sistemler için optimize edilmiş farklı bir mimari sunar. Apache’ye kıyasla eş zamanlı işlem yerine olay odaklı bir sistemle çalışır. Bu sayede aynı anda binlerce bağlantıyı işleyebilir. Statik içerik sunumundaki başarısı, onu ön katmanda görev alan bir proxy çözümü haline getirir. Ayrıca sanal sunucularda güvenlik yapılandırmalarıyla birlikte kullanıldığında performansı ve sistem güvenliğini aynı anda koruma altına alır.

Reverse Proxy Nedir? Avantajları Nelerdir?

Reverse Proxy terimi, çoğu zaman teknik açıklamalarla karmaşık hale getirilse de, temelde oldukça basit bir işlevi ifade eder. Bir reverse proxy, kullanıcıdan gelen talepleri alır, bu istekleri arka plandaki başka bir sunucuya iletir ve ardından gelen yanıtı tekrar kullanıcıya sunar. Yani kullanıcı, arka uçta hangi sunucu olduğunu bilmeden, tüm işlemleri bu “aracı” sunucu üzerinden gerçekleştirir.

Bu yapının en bilinen örneklerinden biri Nginx’tir. Nginx, ziyaretçilerden gelen HTTP isteklerini karşılar, ancak bu içerikler dinamikse (örneğin PHP ile çalışan bir sistemse), bu isteği Apache’ye aktarır. Apache, veriyi işler ve çıktıyı Nginx’e gönderir; Nginx de son yanıtı kullanıcıya iletir. Bu katmanlı yapı sayesinde her sunucu kendi uzmanlık alanında çalışır: Nginx statik dosyaları ve yönlendirmeyi üstlenirken, Apache sunucu taraflı işlemleri yürütür.

Reverse proxy kullanımının sağladığı avantajlar ise oldukça fazladır. Öncelikle sistemin genel performansını artırır çünkü yükü paylaşır. Ayrıca güvenlik açısından ekstra bir koruma katmanı sağlar; gerçek sunucu doğrudan dış dünyaya açılmaz. Trafik kontrolü, cache yönetimi ve SSL offloading gibi gelişmiş özellikler de bu mimariyle birlikte kolayca entegre edilebilir.

Kurulum Öncesi Gereksinimler

Apache ve Nginx kurulumu için minimum sistem gereksinimleri şunlardır:

▶️AlmaLinux 8.x veya 9.x sürümü

▶️root veya sudo yetkisine sahip kullanıcı

▶️İnternet bağlantısı

▶️Selinux devre dışı veya yapılandırılmış olmalı

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

Sıkça Sorulan Sorular (SSS)

Neden hem Nginx hem Apache kullanmalıyım?

Nginx, bağlantı yönetimi ve statik içerik sunumu konusunda oldukça hızlıdır. Apache ise modüler yapısı sayesinde PHP gibi sunucu taraflı işlemleri daha esnek yönetebilir. Bu ikili bir araya geldiğinde, yükü paylaşan, daha hızlı yanıt veren ve daha stabil çalışan bir sistem elde edilir. Özellikle kaynakları verimli kullanmak isteyenler için bu yapı oldukça avantajlıdır.

Apache 8080’e alınmasa olmaz mı?

Nginx ve Apache varsayılan olarak aynı portu (80) kullanmak ister, bu da doğal olarak çakışmaya sebep olur. İkisini aynı sunucuda birlikte çalıştırabilmek için birinin portunu değiştirmek gerekir. Bu noktada genellikle Apache 8080 gibi farklı bir porta taşınır. Böylece Nginx 80 üzerinden gelen istekleri karşılayabilir ve ihtiyaç duyulduğunda Apache’ye yönlendirebilir. Bu düzen, iki servisin çatışmadan birlikte çalışmasını sağlar.

HTTPS ile birlikte çalışır mı?

Kesinlikle evet. Hatta Nginx reverse proxy yapısının en güçlü yanlarından biri, HTTPS işlemlerini kendi üzerinde halledip, trafiği güvenli şekilde arka uç sunucuya (örneğin Apache’ye) iletebilmesidir. Bu, hem performans açısından faydalıdır hem de SSL sertifika yönetimini sadeleştirir. Let’s Encrypt gibi ücretsiz sertifika sağlayıcılarıyla birlikte kullanıldığında, tüm siteyi HTTPS üzerinden çalıştırmak oldukça kolay ve pratik hale gelir.

Yalnızca Nginx kullanmak daha mantıklı mı?

Bu sorunun yanıtı tamamen projenizin ihtiyaçlarına bağlı. Eğer sadece HTML, CSS, resim dosyaları gibi statik içerikler barındıran bir site yönetiyorsanız, Nginx tek başına gayet yeterlidir. Ancak PHP, WordPress veya Laravel gibi dinamik içerik üreten altyapılar kullanıyorsanız, Apache’nin güçlü PHP entegrasyonu size avantaj sağlar. Kısacası, karmaşık ya da yoğun sunucu tarafı işlemleri olan sistemlerde Apache’yi arka uçta kullanmak hala en iyi çözümlerden biridir.

Yorum yapın