http-request set-map

Dosyaları elle düzenlemek veya Runtime API'sını kullanmak istemediğinizi varsayalım. Bunun yerine, belirli bir URL parametresi ile bir HTTP isteği yapabilmek ve Map dosyanızı güncellemek istediniz. Bu durumda, http-request set-map kullanılır. Bu, çalışma sırasında bir Map'in ne zaman ve nasıl değiştirileceğine karar vermek için fetches, converters ve ACL'lerin kullanılmasına izin verir.

set-map'e ek olarak, Map girişlerini aynı şekilde kaldırmanıza izin veren del-map de vardır. Runtime API'sinde olduğu gibi, bu değişiklikler yalnızca isteğin sona erdiği süreç için de geçerlidir. Map dosyasının yolunu set-map'e aktarın ve eklemek veya güncellemek istediğiniz boşluklarla ayrılmış bir anahtar ve değerle takip edin.

Hem anahtar hem de değer, günlük biçimi gösterimini destekler; böylece bunları düz dizeler olarak belirtebilir veya fetches ve converters kullanabilirsiniz. Örneğin, hosts.mapdosyasına yeni bir girdi eklemek için, ancak yalnızca kaynak adres 192.168.122.0/24 aralığına giriyorsa, aşağıdaki gibi bir yapılandırma kullanabilirsiniz:

frontend fe_main
    bind :80
    acl in_network src 192.168.122.0/24
    acl is_map_add path_beg /map/add
    http-request set-map(/etc/haproxy/maps/hosts.map) %[url_param(domain)] %[url_param(backend)] if is_map_add in_network
    http-request deny deny_status 200 if { path_beg /map/ }
    use_backend %[req.hdr(host),lower,map(/etc/haproxy/maps/hosts.map)]

Last updated