Aşağıdaki kurulum var:
|-------|--- backend1:8080
example.com:80---|HAProxy|--- backend2:8080
|-------|--- backend3:8080
Orijinal URL içeren özel bir üstbilgi eklemek için HAProxy yapılandırmak istiyorum. Örneğin kullanıcı isterse http://example.com/foo?bar=baz, yani:
GET /foo?bar=baz HTTP/1.1
Host: example.com:80
HAProxy bu isteği arka ucuna bu şekilde çevirmek istiyorum:
GET /foo?bar=baz HTTP/1.1
Host: backend1:8080
x-custom-header: http://example.com/foo?bar=baz
Bu reqaddseçenek yalnızca statik değere sahip bir başlık eklememe izin veriyor. Ben kullanarak istek yolu yolunu başardı reqrep:
reqrep ^([^\ ]*)\ ([^\ ]*)\ (HTTP\/1\.[10]) \0\r\nx-custom-header:\ \2
ancak ne yazık ki bu, orijinal URL'nin yalnızca aşağıdaki başlıkla sonuçlanan yol kısmını yakalar:
x-custom-header: /foo?bar=baz
Benim sorum HAProxy 1.4'teHost HTTP isteğinin hem üstbilgisini hem de ilk satırını özel bir üstbilgide birleştirmenin mümkün olup olmadığı
reqaddbaşvuran bir acl ile birleştirmeyi denedinizbe_idmi? Tam olarak dinamik değil, ancak arkareqirepuçların sayısı azsa sizi daha da yaklaştırabilir ... ayrıca isteğe bağlı bir acl'yi de destekler, böylece her bir arka uç için ayrı regex'ler yazabilirsiniz, her biri yalnızca bir acl seçilen arka uca uyuyorsa İD.