Hi!
We have been using haproxy for many years and recently I found that it
is possible to use Lua to dynamically configure it. That is great!
I would like to create a service which balances the HTTP requests on
many servers without passing through the traffic on the proxy: actually
it would redirect (HTTP 3xx) to the target server. As server status is
available in haproxy (core.proxies[backend].servers), only the balance
algorithm is needed to select an alive server for redirection. I could
not find any solution to get the server id or name after balance
algorithm (eg. balance uri) runs without sending the request to the
selected server.
That is why I thought about to implement the balancing in Lua but
converters like crc32 or djb2 are not available in init (or I have not
found how to access them). I would like to precalculate server hashes in
init (for consistent hash) and not in runtime.
Is there a way to get the backend id or name without proxying the request?
Are converter functions available in init phase?
Thanks in advance.
BR, Gabor
We have been using haproxy for many years and recently I found that it
is possible to use Lua to dynamically configure it. That is great!
I would like to create a service which balances the HTTP requests on
many servers without passing through the traffic on the proxy: actually
it would redirect (HTTP 3xx) to the target server. As server status is
available in haproxy (core.proxies[backend].servers), only the balance
algorithm is needed to select an alive server for redirection. I could
not find any solution to get the server id or name after balance
algorithm (eg. balance uri) runs without sending the request to the
selected server.
That is why I thought about to implement the balancing in Lua but
converters like crc32 or djb2 are not available in init (or I have not
found how to access them). I would like to precalculate server hashes in
init (for consistent hash) and not in runtime.
Is there a way to get the backend id or name without proxying the request?
Are converter functions available in init phase?
Thanks in advance.
BR, Gabor