"Enter"a basıp içeriğe geçin

AlmaLinux Üzerinde Apache + Nginx Proxy Kurulumu

Apache ve Nginx Nedir?

Web siteleri ya da uygulamalar internette yayınlandığında, bu içerikleri ziyaretçilere ulaştıran bir motor gerekir: işte bu noktada devreye web sunucuları girer. Apache HTTP Server, uzun yıllardır kullanımda olan köklü bir çözümdür. Esnek yapısı, modül desteği ve geniş topluluk desteği sayesinde özellikle özelleştirme gereken projelerde ilk akla gelen sistemlerden biridir. Apache, geleneksel işleyişi ve geniş eklenti desteğiyle hem yeni başlayanlar hem de sistem yöneticileri için kullanıcı dostu bir deneyim sunar. Özellikle LiteSpeed altyapısıyla birlikte kullanılan modern panellerle karşılaştırıldığında, yapılandırma esnekliği açısından öne çıkmaktadır.

Nginx ise daha farklı bir yaklaşımı temsil eder. Hafif, hızlı ve özellikle yüksek trafik altında performans kaybı yaşamayan yapısı sayesinde modern web projelerinin favorilerinden biri haline gelmiştir. Apache’den farklı olarak bağlantıları eş zamanlı işlemek yerine olay tabanlı bir mimari kullanır; bu da onu aynı anda binlerce isteği karşılamaya hazır hale getirir. Statik içerikleri (resim, CSS, JavaScript gibi) çok hızlı sunabildiği için sıkça bir ön katman (front-end proxy) olarak konumlandırılır. Özellikle Sanal Sunucularda Güvenlik politikalarıyla entegre çalıştığında, sistem bütünlüğü ve performansı aynı anda koruma altına alınabilir.

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.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir