HAProxy
  • Giriş
  • Nedir?
  • Ne Değildir?
  • Nasıl Çalışır?
  • Kurulum
    • Kaynak Kod ile Derlemek
    • Sunucu için HAProxy Kurulumu
    • Paket Yöneticisi ile Kurulumu
  • Temel Yapı ve Terimler
    • Format
    • Global
    • Defaults
    • Frontend
    • Backend
    • Örnek Konfigürasyon
  • SSL Termination
    • Giriş
    • SSL Termination Faydaları
    • HAProxy ile SSL'yi etkinleştirme
    • HTTP'den HTTPS'e yönlendirme
    • SSL Sürümlerini Sınırlama
    • Sertifikaları Sınırlama
    • SNI ile Sertifika Seçimi
    • EC ve RSA Destekleme
    • İstemci Sertifikaları
  • ACL
    • Giriş
    • Format
    • Fetches
    • Converters
    • Flags
    • Matching methods
  • Maps
    • Format
    • Converters
    • Map Güncellemek
      • Dosyayı Doğrudan Düzenleme
      • lb-update Modülü Kullanarak
      • Runtime API Kullanarak
      • http-request set-map
  • Multithreading
    • Giriş
    • Multiprocess to Multithreading
    • Multithreading Desteği
    • Multithreading Yapılandırma
  • Prometheus Metrics
    • Giriş
    • Native Prometheus Desteği
    • Prometheus ile Derlemek
    • HAProxy'yi Yapılandırma
    • HAProxy Exporter
  • Stats Page
    • Giriş
  • Kaynak
Powered by GitBook
On this page

Was this helpful?

Nasıl Çalışır?

HAProxy, tek iş parçacıklı (single-threaded), olay güdümlü (event-driven), engellemeyen (non-blocking) bir motordur. Veri iletme hedefi göz önünde bulundurularak tasarlandığından, mimarisi mümkün olan en az işlemle verileri mümkün olduğunca hızlı taşımak için optimize edilmiştir. Bu nedenle, her seviyede verinin bypass mekanizmaları sunan katmanlı bir model uygular ve verilerin gerekmedikçe daha yüksek seviyelere ulaşmamasını sağlar. İşlemenin çoğu çekirdekte gerçekleştirilir ve HAProxy, bazı ipuçları vererek veya daha sonra gruplandırılabileceğini tahmin ettiğinde belirli işlemlerden kaçınarak çekirdeğin işi mümkün olduğunca hızlı yapmasına yardımcı olmak için elinden geleni yapar. Sonuç olarak testler HAProxy'de harcanan işlem süresinin %15'ini, TCP veya HTTP close mode çekirdeğin %85'ini ve HAProxy için yaklaşık% 30'unu HTTP Keep-alive modunda çekirdek için %70'ini kullanır.

Tek bir işlem birçok proxy örneği çalıştırabilir; Tek bir işlemde 300.000 ayrı proxy yapılandırmasının iyi çalıştığı test edilmiş. Bu nedenle, genellikle tüm örnekler için birden fazla işlem başlatmaya gerek yoktur.

HAProxy'nin birden fazla işlem üzerinde çalışmasını sağlamak mümkündür, ancak birkaç sınırlama ile birlikte gelir. Çekirdek tarafı connect() gibi bazı işlemlerde çok iyi ölçeklenmediğinden, genel olarak HTTP close veya TCP modlarında bir anlam ifade etmez. HTTP keep-alive modu için oldukça iyi ölçeklendirilir, ancak tek bir işlemden elde edilebilen performans genellikle ortak ihtiyaçları büyüklük sırasına göre daha iyi yapar. Bununla birlikte, SSL offloader olarak kullanıldığında mantıklıdır ve bu özellik çok işlemli modda iyi desteklenir.

HAProxy başladıktan sonra, tam olarak 3 şey yapar:

  1. Gelen bağlantıları işlemek;

  2. Sunucuların durumunu düzenli olarak kontrol eder (health check);

  3. Diğer HAProxy düğümleriyle iletişim kurar.

PreviousNe Değildir?NextKaynak Kod ile Derlemek

Last updated 5 years ago

Was this helpful?