这是一个奇怪复杂的问题。 语境: 我有一堆docker容器需要动态地从haproxy路由到。它们分别在机器上的不同端口上运行,并存储在这样的环境变量中:
a=9873
b=9874
c=9875
这些可供haproxy服务器使用。进入的请求路径将采用以下示例的形式:
/api/a/action
从那以后,这些目标如下:
需要从路径中删除/api
。
/a
是指服务,因此需要检索a
的环境变量以获取服务器的端口
localhost:9873/a/action
,其中端口9873是环境变量,它是开头路径中的值(在删除/api
之后),然后路径就是附加到请求(移除/a/action
。/api
我当前的配置如下所示:
backend api
reqrep ^([^\ ]*\ /)api[/]?(.*) \1\2
server api_server localhost:9871
所有这个配置正在做的是从请求的路径中删除/api
并将其发送到静态端口9871. *我需要此端口是由与路径中的第一个元素同名的环境变量(上面的/a
)和其余的(传递剩余路径)已经在运行。*
我还希望能够获得名称为prefix_a
的环境变量,其中路径的名称为/a
,但我需要添加一个公共前缀prefix_
获取环境变量。这可以是一个单独的问题或搜索,除非将其简单地纳入解决方案。
如果我能澄清或提供可能有助于解决问题的更多信息,请告诉我。
(我已经搞了很多谷歌搜索。这里有一些相关的网址,但不是我需要的答案: