HAProxy'yi Ters Proxy Olarak Yapılandırma

Haproxy Yi Ters Proxy Olarak Yapilandirma



Bir web sunucunuz olduğunda, istemci isteklerini ve sunucunun yanıtını iletecek bir yola sahip olmak, trafiğin dağıtılmasına yardımcı olur ve güvenliği artırır. HAProxy gibi bir ters proxy, yapılandırıldığında web uygulamanız ile istemci cihazlarınız arasında aracı görevi görür. Bu şekilde istemci isteklerini alır ve bunları uygun web sunucusuna iletir, sunucunun yanıtını alıp istemcilere iletir. HAProxy'yi sunucu tarafınızda ters proxy'niz olarak görev yapacak şekilde yapılandırmak basit bir işlemdir. Bu yazıda atmanız gereken adımlar ayrıntılı olarak anlatılmıştır.

Neden Ters Proxy Kullanmalı?

HAProxy'yi ters proxy olarak yapılandırma adımlarını tartışmadan önce, ters proxy'nin neden sizin avantajınıza çalıştığını hızlıca vurgulayalım. HAProxy'yi ters proxy olarak kullanarak elde edeceğiniz avantajlar şunlardır:

  1. Yük dengeleme - Web sunucunuz bir noktada çok sayıda istemci isteğiyle karşı karşıya kalabilir ve bu istekler iyi yönetilmezse aşırı yüklenebilir ve bu da beklenmeyen bir kesintiye neden olabilir. Ancak ters proxy yapılandırmak, hiçbir sunucunun isteklerle aşırı yüklenmemesini sağlamak için trafiğin arka uç sunucular arasında dağıtılmasını sağlar.
  2. Güvenlik Duvarı ve Güvenlik – Ters proxy, istemci cihazlarını web sunucusuna bağlar. Bunu yapmak, arka uç sunucularımızın doğrudan internete maruz kalması riskini azaltır. Bu şekilde, kötü amaçlı bir trafik, sunuculara zarar vermeden önce kolayca filtrelenebilir ve engellenebilir.
  3. Daha İyi Önbelleğe Alma – Ters proxy ile, statik içeriğin önbelleğe alınmasıyla yükleme süresi azalacağından genel performansın arttığını fark edeceksiniz. Ayrıca daha iyi bir kullanıcı deneyimi elde edeceksiniz.
  4. SSL/TLS Fesih – Ters proxy ile SSL/TLS bağlantılarının şifrelenmesi ve şifresinin çözülmesi sorunsuz hale gelir ve arka uç sunucularınızın bu görevi üstlenmesine gerek kalmaz, böylece yükleri azalır.

HAProxy'yi Ters Proxy Olarak Yapılandırma

HAProxy gibi bir ters proxy'nin neden gerekli olduğunu açıkladıktan sonra izlenecek yapılandırma adımlarını verelim.







Adım 1: HAProxy'yi yükleyin



Muhtemelen sisteminizde HAProxy zaten kuruludur. Eğer öyleyse, bu adımı atlayın. Ancak bu konuda yeni olan biri için HAProxy'yi yüklemek üzere aşağıdaki komutu çalıştırın:



$ sudo apt haproxy'yi yükle

Bizim durumumuzda zaten yüklü.





Adım 2: HAProxy Yapılandırma Dosyasını Düzenleyin



HAProxy'nin, ters proxy'niz olarak yapılandırmak için erişmeniz ve düzenlemeniz gereken bir yapılandırma dosyası vardır. Bir metin düzenleyici kullanarak yapılandırma dosyasını açarak başlayın.

$ sudo nano /etc/haproxy/haproxy.cfg

Açıldığında, varsayılan ve genel bölümler için temel yapılandırmalara sahip olduğunu unutmayın. Daha sonra iki bölüm daha oluşturmalıyız: ön uç ve arka uç. Ön uç, istemci isteklerini alması gereken arayüzleri tanımlarken arka uç, trafiği yönetecek sunucuları belirtir.

Bu örnekte, ön ucu 80 ve 81 numaralı bağlantı noktalarından gelen istemci isteklerini kabul edecek şekilde yapılandırıyoruz. Daha sonra trafiği, 80 numaralı bağlantı noktasından gelen bağlantılar belirli bir sunucuya yönlendirilirken 81 numaralı bağlantı noktasından gelenler farklı bir sunucuya yönlendirilecek şekilde trafiği dağıtmak için bir kural oluşturuyoruz. sunucu. Ön uç bölümümüz aşağıda gösterildiği gibidir:

İki arka uç sunucusu (backend2 ve linux_backend) oluşturduğumuz için, her iki sunucu için de arka uç bölümleri oluşturmamız gerekiyor. Her biri için “sunucu1” ve “sunucu2”ye trafiği hangi IP üzerinden dağıtacağımızı belirliyoruz.

Yapılandırma dosyası düzenlendikten sonra kaydedin ve dosyadan çıkın. İhtiyaçlarınıza bağlı olarak HAProxy'yi yapılandırmanın birçok yolu olduğunu unutmayın. Bizim durumumuzda, trafiğimizi yönlendirmek için belirtilen IP adresini kullanarak web sunucularını oluşturuyoruz. IP'leri web sunucularınızın IP'leriyle ve hangi bağlantı noktasını dinlemek istediğinizle eşleşecek şekilde değiştirin.

3. Adım: Geçerliliği Doğrulayın

HAProxy'de yapılandırma dosyanızın geçerli olup olmadığını doğrulamanızı sağlayan bir komut vardır. Aşağıdaki komutu çalıştırın ve hangi çıktıyı alacağınızı görün:

$ sudo haproxy -c -f /etc/haproxy/haproxy.cfg

Benzer bir çıktı alırsanız, yapılandırma dosyanızın geçerli olduğu onaylanır. Aksi halde hatalara yol açacaktır.

Adım 4: Ters Proxy'yi Test Edin

Curl gibi bir komut kullanarak web sunucunuza trafik gönderebilir ve nasıl tepki verdiğini görebilirsiniz. Bizim durumumuz için web sunucularını oluşturmak için Python3'ü kullanıyoruz.

Curl komutunu çalıştırmak, web sunucumuzun belirtilen bağlantı noktasını dinlediğini ve HAProxy'nin trafiği yapılandırma dosyamıza göre belirtilen sunucuya dağıttığını doğrular.

Ayrıca web sunucunuza bir tarayıcıdan da erişebilir ve ters proxy'nin çalıştığını doğrulayabilirsiniz.

İstemci cihazların kullandığı porta bağlı olarak kullanılabilecek iki web sunucumuz olduğundan, farklı bir web sunucusunu farklı bir porta bağlayalım ve ne olacağını görelim.

Aşağıdaki çıktı, HAProxy'nin, istemci isteğinin port 81 üzerinden gönderildiğini tespit ettikten sonra trafiğimizi ikinci arka uç sunucusuna gönderdiğini ve trafik dağıtımının beklendiği gibi çalıştığını doğruladığını gösterir.

HAProxy'yi ters proxy olarak bu şekilde yapılandırabilirsiniz.

Çözüm

HAProxy, web sunucunuz için ters proxy olarak mükemmel bir seçimdir. Bunu yapılandırmak basittir. Yalnızca istemci istekleri için hangi bağlantı noktasının dinleneceğini ve yük dengeleme için hangi kuralların kullanılacağını belirtin. Ardından, kullanılacak arka uç sunucularını ekleyin; ters proxy'nizin çalışır durumda olmasını sağlayın. Bu gönderide izlenecek adımlar paylaşıldı ve HAProxy'de rahat olmanızı sağlayacak bir örnek gösterildi.