Ubuntu 24.04 Üzerinde Nginx + HAProxy Kurulumu ve Temel Ayarlar
Günümüzde yüksek erişilebilirlik (High Availability – HA) bir lüks değil, bir gerekliliktir. Uygulamaların çevrimiçi kalma süresi (uptime) işletmeler için kritik olduğunda, trafik yönetimi ve yük dağıtım katmanını doğru konumlandırmak büyük önem taşır. Bu yazıda Ubuntu 24.04 üzerinde Nginx ve HAProxy kullanarak temel bir yüksek erişilebilirlik yapısı kuracağız. Hedefimiz, hem ölçeklenebilir hem de esnek bir trafik yönlendirme katmanı oluşturmaktır.
📌 Mimarinin Genel Görünümü
Aşağıdaki mimari, HAProxy’yi yük dengeleyici (Load Balancer), Nginx’i ise backend web sunucusu olarak kullanır.
Olası diyagram alanı:
[Client]
│
▼
[HAProxy Load Balancer]
│
├──>[Nginx Server 1]
└──>[Nginx Server 2]
1. Sunucu Hazırlığı
Ubuntu 24.04 üzerinde çalıştığımızı varsayıyoruz. Paket listelerini güncelleyerek başlıyoruz:
- sudo apt update && sudo apt upgrade -y
Zorunlu araçları da ekleyelim:
- sudo apt install vim curl wget net-tools -y
2. Nginx Kurulumu:
Backend sunucularımız Nginx çalıştıracak.
- sudo apt install nginx -y
Ardından servis durumunu kontrol edelim:
- systemctl status nginx
2. Nginx Basit Test Sayfası
/var/www/html/index.html dosyasını düzenleyerek her sunucuya özgü test sayfası oluşturabilirsiniz:
echo “<h1>Nginx Server 1</h1>” | sudo tee /var/www/html/index.html
Bu, HAProxy üzerinden trafikte hangi sunucunun yanıt verdiğini rahatça görmenizi sağlar.
3. HAProxy Kurulumu
Load balancer katmanımız için HAProxy kullanıyoruz:
- sudo apt install haproxy -y
Kurulumdan sonra servisin otomatik açılması için:
- sudo systemctl enable haproxy
4. HAProxy Temel Konfigürasyonu
HAProxy yapılandırma dosyası:
- sudo nano /etc/haproxy/haproxy.cfg
Aşağıdaki örnek, klasik bir round-robin load balancing yapısıdır:
rontend http_front
bind *:80
default_backend nginx_back
backend nginx_back
balance roundrobin
server web1 192.168.1.10:80 check
server web2 192.168.1.11:80 check
Açıklamalar
-
frontend → Gelen talepleri karşılayan katman
-
backend → Yük dağıtımı yapılan Nginx sunucularının listesi
-
balance roundrobin → Sırayla sunucular arasında trafik dağıtılır
-
check → Sunucu sağlığını kontrol eder
5. HAProxy Logları Aktif Etme
Ubuntu 24.04 üzerinde logların tam çalışması için rsyslog ayarlarını aktif etmek gerekir.
Rsyslog yapılandırması
- sudo nano /etc/rsyslog.d/49-haproxy.conf
local0.* /var/log/haproxy.log
sudo systemctl restart rsyslog
sudo systemctl restart haproxy
6. HAProxy İstatistik Arayüzü (Opsiyonel Fakat Önerilir)
HAProxy’nin web tabanlı durum ekranını açmak için backend bölümüne aşağıdakini ekleyin:
listen stats
bind :9000
stats enable
stats uri /stats
stats refresh 5s
Ardından tarayıcıda:
http://<HAProxy-IP>:9000/stats
7. Güvenlik ve Firewall Ayarları
UFW veya iptables kullanıyorsanız aşağıdaki portlara izin vermelisiniz:
sudo ufw allow 80/tcp
sudo ufw allow 9000/tcp
8. Test Süreci
Tarayıcınızdan HAProxy’nin IP’sine istek gönderin:
http://<LB-IP>
Sayfa her yenilendiğinde farklı Nginx sunucusundan gelen içerik görmelisiniz:
9. Performans ve Temel İyileştirmeler
Backend’lere daha stabil bağlantılar için:
option httpchk GET /
timeout http-request 10s
timeout connect 5s
timeout client 30s
timeout server 30s
Nginx Tuning (Önerilen Minimum Ayarlar)
sudo nano /etc/nginx/nginx.conf
Aşağıdakileri doğrulayın veya düzenleyin:
worker_processes auto;
worker_connections 4096;
keepalive_timeout 65;
gzip on;
Nginx’i yeniden başlatın:
sudo systemctl restart nginx
10. Sonuç
Bu yazıda Ubuntu 24.04 üzerinde Nginx backend ve HAProxy load balancer kullanarak modern, yüksek erişilebilir bir mimari kurduk. Bu yapı, özellikle web tabanlı uygulamalarda hem ölçeklenebilirlik hem de kesintisiz hizmet sağlamak için oldukça etkili bir çözümdür.