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.
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.
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
Last updated