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?

  1. Maps

Converters

Belirli bir alan adına bağlı olarak hangi backend 'in kullanılması gerektiğini aramak için daha önce oluşturduğunuz hosts.map dosyasını kullanacağız.

Converter, HAProxy yapılandırmanıza bir girdi alan ve ilişkili bir çıktı döndüren bir yönergedir. Çeşitli dönüştürücüler vardır. Örneğin, belirli bir dizeyi küçük harfle değiştirmek için lower dönüştürücüyü veya URL'nin kodunu çözmek için url_dec değerini kullanabilirsiniz.

frontend fe_main
    bind :80
    use_backend %[str(example.com),map(/etc/haproxy/maps/hosts.map)]

Anahtar olarak example.com içeren hosts.map dosyasındaki ilk satırın değeri döndürülür.str (example.com) ifadesine ve dönüştürücüden virgülle ayrıldığına dikkat edin.

Bu ifade çalışma zamanında değerlendirildiğinde, istekleri be_static sunucu havuzuna yönlendiren use_backend be_static satırına dönüştürülür. Tabii ki, example.com gibi sabit bir dizeden geçmek yerine, bir HTTP Header veya URL parametresi değerini gönderebilirsiniz. Aşağıdaki örnek giriş olarak Host Header değerini kullanır.

use_backend %[req.hdr(host),lower,map(/etc/haproxy/maps/hosts.map,be_static)]

Map dönüştürücü en fazla iki bağımsız değişken alır. Birincisi Map dosyanızın yoludur. İkinci isteğe bağlı bağımsız değişken, eşleşen anahtar bulunmazsa kullanılacak varsayılan bir değer bildirir. Dolayısıyla, bu durumda, eşleşme yoksa, be_static kullanılacaktır. Giriş, Map dosyasındaki birden çok değer ile eşleşirse, HAProxy birincisini döndürür. Map dönüştürücü, dosyada tam bir eşleşme arar, ancak kısmi eşleşme için fırsatlar sağlayan birkaç seçenek vardır. En yaygın olarak kullanılanlar aşağıda eklenmiştir:

map_beg

Map dosyasındaki girdinin başlangıcına uyan girdileri arar (örneğin “abcd” girdisi dosyadaki “a” ile eşleşir)

map_end

Map dosyasındaki girdinin sonuyla eşleşen girdileri arar (örneğin, “abcd” girdisi dosyadaki “d” ile eşleşir).

map_sub

Map dosyasında değerin bir alt dizesini oluşturan girişleri arar (örneğin, “abcd” girişi dosyadaki “ab” veya “c” ile eşleşir).

map_ip

Bu, girişi bir IP adresi olarak alır ve Map'de arar. Map'in içinde maskeler (192.168.0.0/16 gibi) varsa, aralıktaki herhangi bir IP eşleşir. Bu, giriş türünün bir IP adresi olması durumunda varsayılan değerdir.

map_reg

Bu, Map'deki örnekleri normal ifadeler(regex) olarak okur ve normal ifade eşleşirse eşleşir.

map_str

Map için bir takma ad. Bu, bir dizeyi giriş olarak alır, tüm anahtarla eşleşir ve değeri dize olarak döndürür

PreviousFormatNextMap Güncellemek

Last updated 5 years ago

Was this helpful?