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.map
dosyası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
Was this helpful?