Tengo varios servicios que se ejecutan en diferentes puertos, cada uno de los cuales utiliza las mismas rutas URI. Por ejemplo:
New York Housing Service
127.0.0.1:8080/homes
127.0.0.1:8080/prices
Las Vegas Housing Service
127.0.0.1:8081/homes
127.0.0.1:8081/prices
Esto ha ido bien hasta ahora, pero ahora necesito configurar haproxy para equilibrar la carga de los servicios. Como tal, obviamente necesito ser capaz de diferenciarlos para el cambio de contenido. Lo que me imagino que haría es añadir un parámetro a la ruta en el ACL para diferenciar entre los dos backends, en este caso por tener un parámetro url en el ACL, que sería seguido por los parámetros de ruta reales para la aplicación:
frontend http
maxconn 2000
bind 0.0.0.0:5000
acl new-york path_reg -i /newyork.*
use_backend nyc-server if new-york
acl las-vegas path_reg -i /lasvegas.*
use_backend lv-server if las-vegas
backend nyc-server
server www.test.com 127.0.0.1:8080 maxconn 100
backend lv-server
server www.test.com 127.0.0.1:8081 maxconn 100
En esta configuración, ir a 127.0.0.1:5000/newyork/home me llevará a 127.0.0.1: 8080 /home, mientras que 127.0.0.1:5000/lasvegas/home me lleva a 127.0.0.1: 8081 /home. Mis intentos hasta ahora han devuelto simplemente un error 404. He estado revisando la documentación, pero no he visto nada que coincida con mi caso de uso, por lo que cualquier ayuda sería muy apreciada.
EDITAR: Me olvidé de mencionar que estoy usando haproxy 1.5.18