Ana içeriğe geç

🚀 Apache Reverse Proxy Kurulumu: Ubuntu 20.04 Üzerinde mod_proxy ile Geri Yönlendirme

Bu rehberde, Apache’nin mod_proxy uzantısını kullanarak gelen HTTP(S) isteklerini arka uç uygulama sunucularına nasıl yönlendireceğinizi öğreneceksiniz. Reverse proxy yapılandırması; güvenlik, performans, yük dengeleme ve SSL yönetimi gibi konularda büyük avantaj sağlar.


📘 Bu Rehberde Ne Öğreneceksiniz?

  • Apache mod_proxy modüllerini etkinleştirmeyi
  • Tek veya birden fazla backend için reverse proxy kurmayı
  • Load balancing havuzu oluşturmayı
  • Test backend sunucuları çalıştırmayı (Flask ile)
  • ProxyPass ve ProxyPassReverse mantığını

Tüm adımlar sade, yerelleştirilmiş ve teknik olarak doğru şekilde anlatılmıştır.


🛠️ 1. Gerekli Apache mod_proxy Modüllerini Etkinleştirin

1. Reverse proxy için önce şu modülleri aktif etmemiz gerekiyor:

  • mod_proxy

  • mod_proxy_http

  • mod_proxy_balancer

  • mod_lbmethod_byrequests

  • Gerekli modülleri etkinleştirmek için:

sudo a2enmod proxy proxy_http proxy_balancer lbmethod_byrequests

2. Apache’yi yeniden başlatın:


sudo systemctl restart apache2

🧪 2. Test Backend Sunucuları Oluşturun (İsteğe Bağlı)

  • Flask kullanarak iki küçük test uygulaması oluşturalım.

1. Paket listesi ve pip kurulumu:


sudo apt update
sudo apt install python3-pip
sudo pip3 install Flask
Backend 1:

nano ~/backend1.py

from flask import Flask
app = Flask(__name__)

@app.route('/')
def home():
return 'Merhaba Dünya!'
Backend 2:


cp ~/backend1.py ~/backend2.py
nano ~/backend2.py

2. Mesajı değiştirin:


return 'Selam Dünya!'

2.1 Sunucuları başlatma:


FLASK_APP=~/backend1.py flask run --port=8080 >/dev/null 2>&1 &
FLASK_APP=~/backend2.py flask run --port=8081 >/dev/null 2>&1 &

🔁 3. Apache Reverse Proxy Yapılandırması

1. Varsayılan VirtualHost dosyasını açın:


sudo nano /etc/apache2/sites-available/000-default.conf

3.1 🟦 Örnek — Tek Backend Sunucuya Reverse Proxy


<VirtualHost *:80>
ProxyPreserveHost On

ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>

1. Apache’yi yeniden başlatın:


sudo systemctl restart apache2

3.2 🟦 Örnek — Yük Dengeleme Kurulumu**


<VirtualHost *:80>
<Proxy balancer://uygulama_havuzu>
BalancerMember http://127.0.0.1:8080
BalancerMember http://127.0.0.1:8081
</Proxy>

ProxyPreserveHost On

ProxyPass / balancer://uygulama_havuzu/
ProxyPassReverse / balancer://uygulama_havuzu/
</VirtualHost>
  • Apache’yi yeniden başlatın:

sudo systemctl restart apache2
  • Test ettiğinizde sayfa yenilemelerinde mesajların değiştiğini görürsünüz.

❓ Sıkça Sorulan Sorular (SSS)

1. Reverse proxy ile forward proxy arasındaki fark nedir? Forward proxy istemciyi gizler, reverse proxy backend sunucuları gizler.

2. Reverse proxy kullanmanın avantajları? Güvenlik, yük dengeleme, SSL offload, merkezi yönetim ve performans artışı.

3. mod_proxy olmadan reverse proxy yapılabilir mi? Hayır, mod_proxy temel gereksinimdir.

4. Kaç backend sunucusu ekleyebilirim? Sınırsız; Apache onlarca backend’i yönetebilir.

5. HTTPS backend kullanabilir miyim? Evet. ProxyPass içerisinde https:// kullanmanız yeterlidir.


🏁 Sonuç

Apache’yi mod_proxy ile güçlü bir reverse proxy ve yük dengeleme katmanı olarak yapılandırdınız. Bu mimari, Python, Node.js, PHP veya Java tabanlı uygulamalarda yüksek performans ve güvenlik sağlar.

Bu çözümü hemen Rabisu Bulut sunucularınızda deneyebilirsiniz.