VPS sunucularında HAProxy kullanarak SSL termination uygulamak, web uygulamalarınızın güvenliğini ve performansını önemli ölçüde artıran bir yaklaşımdır.
VPS sunucularında HAProxy kullanarak SSL termination uygulamak, web uygulamalarınızın güvenliğini ve performansını önemli ölçüde artıran bir yaklaşımdır. Bu yöntemle, SSL/TLS şifrelemesini yük dengeleyici katmanında sonlandırarak backend sunucularınıza düz HTTP trafiği yönlendirebilirsiniz. Özellikle yüksek trafikli siteler için kaynak tasarrufu sağlar, CPU yükünü azaltır ve sertifika yönetimini merkezileştirir. Bu makalede, VPS ortamında HAProxy’nin kurulumundan yapılandırmasına kadar adım adım rehberlik sunacağız. Kurumsal düzeyde ölçeklenebilirlik arayan sistem yöneticileri için pratik ipuçları ve örnekler paylaşacağız.
HAProxy, açık kaynaklı bir yük dengeleyici ve reverse proxy yazılımıdır. TCP ve HTTP tabanlı uygulamalar için yüksek erişilebilirlik sağlar. SSL termination ise, istemci bağlantılarındaki şifrelemeyi HAProxy’de sonlandırarak backend sunuculara şifresiz trafik gönderme işlemidir. Bu sayede backend’ler daha hafif çalışır ve birden fazla sunucu için tek bir sertifika yönetimi yeterlidir.
VPS sunucularda bu yapı, özellikle kaynak sınırlı ortamlarda idealdir. Örneğin, bir web uygulamanız varsa, HAProxy frontend’de SSL’i yönetir, trafiği backend Node.js veya PHP sunucularına dağıtır. Avantajları arasında gecikme azalması, merkezi logging ve kolay sertifika yenileme yer alır. Kurulum öncesi, Ubuntu veya CentOS gibi dağıtımlarda paket yöneticisini güncelleyin.
HAProxy, ACL’ler (Access Control Lists) ile trafik yönlendirme kuralları tanımlamanıza, health check’ler ile backend sunucuların durumunu izlemenize olanak tanır. SSL termination için frontend ve backend bölümleri kullanılır. Frontend, 443 portunda SSL dinler; backend ise 80 portuna HTTP gönderir. VPS’te firewall kurallarını (ufw veya firewalld) buna göre ayarlayın: 443/tcp açın, 80/tcp’i isteğe bağlı tutun.
Bu yaklaşım, backend sunucuların CPU’sunu %50’ye varan oranda rahatlatır çünkü şifreleme backend’de yapılmaz. Ayrıca, Let’s Encrypt gibi ücretsiz sertifikaları otomatik yenilemek için certbot entegrasyonu kolaylaşır. Güvenlik açısından, backend trafiği yerel ağda kaldığı için risk azalır. Pratikte, e-ticaret sitelerinde session persistence ekleyerek kullanıcı oturumlarını korursunuz.
Ubuntu tabanlı VPS’te HAProxy kurmak için apt update && apt install haproxy komutunu çalıştırın. Ardından /etc/haproxy/haproxy.cfg dosyasını düzenleyin. Global bölümde log ayarları, defaults’ta timeout’lar tanımlayın. VPS kaynaklarını göz önünde bulundurarak maxconn değerini 10000 gibi ayarlayın. Servis yeniden başlatma: systemctl restart haproxy.
sudo apt update && sudo apt upgrade.sudo apt install haproxy.sudo cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak.sudo systemctl enable haproxy.Bu adımlar sonrası, haproxy -f /etc/haproxy/haproxy.cfg -c ile syntax kontrolü yapın. VPS’te SELinux varsa permissive moda alın.
SSL sertifikası için certbot kullanın: sudo apt install certbot, ardından sudo certbot certonly –standalone -d orneksite.com. Bu, /etc/letsencrypt/live/orneksite.com/ altında fullchain.pem ve privkey.pem üretir. HAProxy cfg’sinde bind *:443 ssl crt /etc/letsencrypt/live/orneksite.com/ yolunu belirtin. Yenileme için cron job ekleyin: 0 12 * * * /usr/bin/certbot renew –quiet.
Backend bölümünde server backend1 192.168.1.10:80 check olarak tanımlayın. Birden fazla backend için balance roundrobin kullanın. Health check ile arızalı sunucuları otomatik hariç tutun. VPS’te localhost backend’ler için 127.0.0.1:3000 gibi portlar belirleyin.
Yapılandırma örneği: frontend https-in bind *:443 ssl crt /path/to/cert/ crt-listen mode http. Backend’e use_backend web_servers if { hdr(host) -i orneksite.com }. HTTP/2 desteği için alpn h2,http/1.1 ekleyin. VPS performansı için tune.ssl.default-dh-param 2048 ayarlayın. Loglama için custom-log-format tanımlayın.
Kurulumu test etmek için curl -k https://orneksite.com ile bağlanın, openssl s_client -connect orneksite.com:443 ile sertifika kontrolü yapın. HAProxy stats sayfası için stats enable ekleyin, tarayıcıdan http://vps-ip:8080/haproxy?stats erişin. Backend trafiğinin HTTP olduğunu tcpdump ile doğrulayın: sudo tcpdump -i any port 80.
Optimizasyon için OCSP stapling etkinleştirin: crt-ignore-err all. VPS belleğini izleyin: htop ile maxconn’a göre ayarlayın. Günlük rotasyonu için logrotate kullanın. Bu adımlar, üretim ortamında %20 trafik artışı için hazır hale getirir.
Sonuç olarak, VPS sunucuda HAProxy ile SSL termination, güvenli ve verimli bir altyapı sağlar. Adım adım uygulayarak, bakım yükünü azaltır ve ölçeklenebilirlik kazanırsınız. Düzenli güncellemeler ve monitoring ile uzun vadeli başarı elde edin. Bu yapılandırma, kurumsal web projelerinizde standart hale gelecektir.