Centos Web Panel - [CWP]'ye HAPROXY Kurulumu

Bu makalede CWP - Centos Web Panel Üzerinde HAPROXY Kurulumu ve Yapılandırılması anlatılmıştır.

HAProxy Nedir ?

HAProxy, yüksek erişilebilirlik, yük dengeleme(load balancer) ve TCP ve HTTP tabanlı uygulamalar için proxy oluşturma olanağı sunan ücretsiz, çok hızlı ve güvenilir bir çözümdür. Özellikle çok yüksek trafikli web siteleri için uygundur ve dünyanın en çok ziyaret edilen web sitelerine güç verir. Yıllar geçtikçe, gerçekte standart olan açık kaynaklı yük dengeleyici haline geldi, şimdi çoğu ana Linux dağıtımı ile gönderildi ve genellikle varsayılan olarak bulut platformlarında konuşlandırıldı.


Performans'a Faydaları :

A) Tek işlemci, etkinliğe dayalı bir model, bağlam geçişinin ve bellek kullanımının maliyetini önemli ölçüde azaltır. Birkaç yüz görev sayısını milisaniyelik bir sürede işlemek mümkündür ve önceden yüklenmiş veya dişli sunucularda tüketilen bellek, işlem başına megabayt derecesinde daha fazla iken bellek kullanımı, oturum başına birkaç kilobayttır.

B) (Linux ve FreeBSD) on binlerce arasında herhangi bir bağlantıdaki herhangi bir olayın anında tespit edilmesini sağlayan sistemlerde O (1) olay denetleyicisi.

c) Olay denetleyicisi için tembel bir olay önbelleği kullanarak geciken güncellemeler, kesinlikle gerekli olmadığı sürece bir olayı asla güncellememizi sağlar. Bu, çok fazla sistem araması kaydeder.

D) Mümkün olduğunca okuma ve yazma arasında veri kopyalamadan tek tamponlama. Bu, çok fazla CPU döngüsü ve kullanışlı bellek bant genişliği kazandırır. Çoğu zaman, darboğaz CPU ve ağ arayüzleri arasındaki G / Ç otobüsler olacak. 10-100 Gbps'de, bellek bant genişliği de bir tıkanıklık haline gelebilir.

E) Sıfır kopya iletme, Linux altında splice () sistem çağrısı kullanılarak mümkündür ve Linux 3.5 ile başlayarak gerçek sıfır kopya ile sonuçlanır. Bu, Seagate Dockstar gibi küçük bir 3 Watt'lık küçük bir cihazın HTTP trafiğini bir gigabit/s hızla iletmesini sağlar.

F) MRU bellek ayırıcısı, hızlı önbellek bölgelerini soğuk önbellek alanlarına tercih eden hızlı bellek ayırma için sabit boyutlu bellek havuzlarını kullanıyor. Bu, yeni bir oturum oluşturmak için gereken süreyi önemli ölçüde azaltır.

G) Aynı anda birden çok accept () gibi iş faktoringi ve yükün süreçler arasında eşit şekilde dağıtılması için çoklu işlem modunda çalışırken yineleme başına accept () sayısını sınırlama özelliği.

H) İşlemci benzeşimi, çoklu işlem modunda çalışırken veya yalnızca donanıma uyum sağlamak ve NIC'leri kendisiyle çelişmemekle birlikte yöneten CPU çekirdeğine mümkün olan en yakın şekilde desteklenir.

I) Ağaç tabanlı depolama, birkaç yıldır geliştirdiğim elastik ikili ağacı yoğun şekilde kullanıyor. Bu, zamanlayıcıları sıralı tutmak, çalışma sırasını sipariş etmek, round-robin ve en az conn kuyruklarını yönetmek, tablolardaki ACL'leri veya anahtarları aramak için yalnızca bir O (günlük) maliyetiyle kullanılır.
J) Optimize zamanlayıcı kuyruğu: Zamanlayıcılar, ertelenirse ağacın içinde taşınmaz, çünkü çoğunlukla zaman aşımı işlemi için kullanıldıklarından, yerine getirilme olasılığı sıfıra yakın olur. Bu ebtree kullanımını daha da optimize eder.

K) Optimize edilmiş HTTP üstbilgisi analizi: Üstbilgiler anında yorumlanır ve ayrıştırma, daha önce okunan herhangi bir bellek alanının yeniden okunmasını önlemek için optimize edilir. Denetim noktası, tamamlanmamış bir üstbilgi ile bir arabellek sonuna geldiğinde kullanılır; böylece, daha fazla veri okunduğunda ayrıştırma işlemi baştan başlamaz. Ortalama bir HTTP isteğini çözümlemek, genellikle hızlı bir Xeon E5'de yarım mikrosaniye sürer.

L) Pahalı sistem çağrılarının dikkatle azaltılması. Çalışmaların çoğu kullanıcı tarafından varsayılan olarak yapılır, örneğin zaman okuma, arabellek toplama, dosya tanımlayıcı etkinleştirme / devre dışı bırakma gibi.

M) İçerik analizi, orijinal verilere yalnızca işaretçileri taşımak ve verilerin dönüştürülmesi gerekmedikçe asla kopyalanmayacak şekilde optimize edilmiştir. Bu, çok küçük yapıların taşınmasını ve içeriğin kesinlikle gerekli olmadığı hallerde kopyalanmamasını sağlar.

Nasıl Kurulur ?

1) Putty ile birlikte sunucunuza (SSH) erişimi yapın.

2) HAProxy'nin stabilini indiriyoruz (1.5.11).
wget http://www.haproxy.org/download/1.5/src/haproxy-1.5.11.tar.gz
tar zxvf haproxy-1.5.11.tar.gz
cd haproxy-1.5.11
make install
cp /usr/local/sbin/haproxy /usr/sbin/
cp /root/haproxy-1.5.11/examples/haproxy.init /etc/init.d/haproxy
chmod 755 /etc/init.d/haproxy
useradd --system haproxy
mkdir /etc/haproxy
cd /etc/haproxy
3) Şimdi haproxy yapılandırma dosyasını kurun. /etc/haproxy dosyasında haproxy.cfg dosyasını oluşturun ve aşağıdaki yapılandırma dosyasını ekleyin.

nano haproxy.cfg
global
    daemon
    maxconn 20000        # count about 1 GB per 20000 connections
    pidfile /var/run/haproxy.pid
        stats socket /var/run/haproxy.stat mode 600

defaults
    mode http
    maxconn 19500        # Should be slightly smaller than global.maxconn.
    timeout client 60s  # Client and server timeout must match the longest
    timeout server 60s  # time we may wait for a response from the server.
    timeout queue  60s  # Don't queue requests too long if saturated.
    timeout connect 10s  # There's no reason to change this one.
    timeout http-request 10s    # A complete request may never take that long.
    # Uncomment the following one to protect against nkiller2. But warning!
    # some slow clients might sometimes receive truncated data if last
    # segment is lost and never retransmitted :
    # option nolinger
    option http-server-close
    option abortonclose
    balance roundrobin
    option forwardfor    # set the client's IP in X-Forwarded-For.
    option tcp-smart-accept
    option tcp-smart-connect
    retries 2

frontend public
    bind your-ip-address:80
   

     # table used to store behaviour of source IPs
	 stick-table type ip size 200k expire 5m store gpc0,conn_rate(10s)

	 # IPs that have gpc0 > 0 are blocked until the go away for at least 5 minutes
	 acl source_is_abuser src_get_gpc0 gt 0
	 tcp-request connection reject if source_is_abuser

	 # connection rate abuses get blocked
	 acl conn_rate_abuse sc1_conn_rate gt 30
	 acl mark_as_abuser sc1_inc_gpc0 gt 0
	 tcp-request connection track-sc1 src
	 tcp-request connection reject if conn_rate_abuse mark_as_abuser
    
   
    default_backend apache


backend apache
    # set the maxconn parameter below to match Apache's MaxClients minus
    # one or two connections so that you can still directly connect to it.
    server srv 0.0.0.0:8181 maxconn 254

# Enable the stats page on a dedicated port (8182). Monitoring request errors
# on the frontend will tell us how many potential attacks were blocked.
listen stats
        # Uncomment "disabled" below to disable the stats page :
    # disabled
    bind      :8182
    stats uri /
    stats auth    zirvesunucum:zirvesunucum
Yukarıdaki yapılandırma dosyasında, ip-adresinizi sunucu ip'inizle değiştirin. Birden çok IP adresiniz varsa hepsini aynı satırla değiştirin.

Örn:

frontend public 
bind your-ip-address:80
bind your-ip-address-2:80
bind your-ip-address-3:80
Yazan yerleri kendinize göre düzenleyiniz.

Yukarıdaki yapılandırma dosyasında yeni apache portu 8181 olarak ayarlanmıştır. Bağlantı noktasını değiştirmek için line srv 0.0.0.0:8181 maxconn 254'ü bulun ve istediğiniz 8181 portunu değiştirin. Web statiği arabirimine http://yourip:8182 kullanılarak kullanıcı ve parola kullanarak erişilebilir (zirvesunucum: zirvesunucum). Bağlantı noktası ve kimlik doğrulama verilerini değiştirmek isterseniz, satır bağla: 8182'yi bulun ve bağlantı noktasını değiştirin. Kimlik doğrulama için istatistikler bulmak auth zirvesunucum:zirvesunucum kullanıcı adı ve şifresini sırasıyla değiştirin.

4) Şimdi apache portunu değiştirmeliyiz. CentOS Web Panel GUI'ye giriş yapın (http://yourip:2030) ve CWP Ayarları -> Ayarları düzenle'ye gidin ve Apache Port: değerini 8181 olarak değiştirin.

5) Apacheye restart atın.
service httpd restart

6) HAProxy servisini başlatalım ve her sunucunun açılışında otomatik olarak başlaması için yapılandıralım.
service haproxy start
chkconfig haproxy on
Kurulum bitti ve haproxy proxy artık apache'yi ters proxy olarak sunmaya hazır. İstatistikleri kontrol etmek için http://yourip:8182'yi kullanın ve haproxy.cfg dosyasında belirtilen user:pass yazın. Haproxy'yi yeniden başlatmanız gerektiğinde, aşağıdaki komutu kullanın.
service haproxy restart

Test sunucumuzda haproxy kurulumu yaptık. Http://ipadresiniz:8182 adresinde kullanıcı: zirvesunucum ve şifre: zirvesunucum ile erişebilirsiniz.

NOT: Haproxy'nin etkili bir şekilde onu engelleyip engellemediğini kontrol etmek için Slowloris kullanabilirsiniz.
  • 2 Bu dökümanı faydalı bulan kullanıcılar:
Bu cevap yeterince yardımcı oldu mu?

İlgili & Benzer Makaleler

Centos Web Panel - CWP Kurulumu - Yapılandırma - Nasıl Kurulur?

Centos Web Panel - Kurulumu Bu makalede size centos web panel CWP'nin nasıl kurulacağı ve sistem...

Centos Web Panel - [CWP]'de Mod_WSGI kurulumu

Bu makalede centos web panel için mod_wsgi'nin nasıl yükseltileceği gösterilmiştir. Mod_WSGI...

Centos Web panel - [CWP]'de Suhosin Kurulumu

Bu makalede Suhosin güvenlik sisteminin CWP sistemine nasıl kurulduğu gösterilmiştir. Suhosin...

Centos Web Panel - [CWP]'de Imagick , Maldet ve NET2FTP Kurulumu

Bu makalede Imagick,Maldet ve NET2FTP'nin Centos Web Panel sistemine nasıl kurulduğu...

Centos Web Panel [CWP]'ye Awstats kurulumu ve yapılandırma - Awstats nedir?

Sitenize giren ziyaretçileri izlemek ve kayıt altına almak için kapsamlı bir yazılımdır. Awstats...