根据存储在请求路径

时间:2018-03-23 00:53:50

标签: haproxy

这是一个奇怪复杂的问题。 语境: 我有一堆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_获取环境变量。这可以是一个单独的问题或搜索,除非将其简单地纳入解决方案。

如果我能澄清或提供可能有助于解决问题的更多信息,请告诉我。

(我已经搞了很多谷歌搜索。这里有一些相关的网址,但不是我需要的答案:

0 个答案:

没有答案