Spring Cloud Gateway:如何配置到Consul UI的路由?

问题描述 投票:0回答:1

我尝试将spring cloud网关配置为转发到'/ consul / ui'或'/ consul'下的HashiCorp Consul的标准ui。但是我不知道如何正确地做到这一点。领事以标准配置运行。我在10.2.0.2上有一个外部IP地址和一个本地网络接口。我尝试过:

routes:
    - id: consul
      uri: "http://127.0.0.1:8500"
      predicates:
        - Path=/consul/

curl -L 127.0.0.1/consul/ui但是给了我500,因为根据日志,网关不匹配/ consul而是/ consul / **,然后决定路由到10.2.0.2:8300领事rpc端点。

另一种尝试:

- id: consul
      uri: "http://127.0.0.1:8500"
      predicates:
      - Path=/consul/**
      filters:
      - StripPrefix=1

...与另一个完全一样。另一种有希望的方法:

- id: consul
      uri: "http://127.0.0.1:8500"
      predicates:
      - Path=/consul/**
      filters:
      - RewritePath=/consul/(?<segment>.*), /ui/$\{segment}

使用curl -L实际上可在命令行上使用。但是,在浏览器中,我只能看到领事徽标,但不会加载整个页面。

我当然也尝试了其他组合,但都没有用。

注:领事/ ui端点传递状态302,然后转发到实际页面。

注意:我在网关中使用SSL。

注意:ssh -N -f -L 8500:localhost:8500 <user>@<host>允许我在localhost:8500下在本地打开所需的ui。

UPDATE:显然,/consul/**是一个错误的选择,因为领事本身已经在此途径下注册,因此我发生了冲突。这至少说明了为什么云网关尝试路由到端口8300。

java spring consul spring-cloud-gateway
1个回答
0
投票

遗憾的是,目前尚无此问题的真正答案,但有一些棘手的解决方法。但是,人们正在研究能够代理通行证的解决方案。参见例如https://github.com/hashicorp/consul/issues/1382

© www.soinside.com 2019 - 2024. All rights reserved.