gpt4 book ai didi

routing - 如何在 Zuul 中配置特定于域的路由

转载 作者:行者123 更新时间:2023-12-04 04:37:31 24 4
gpt4 key购买 nike

我们有 2 个域指向我们的单个 Zuul ELB。两个站点都使用许多相同的服务,因此虽然我们的生产环境现在设置略有不同,但我们只有一个 Zuul ELB。

如何根据域名将相同的路径路由到不同的服务?

我想以这样的方式结束:

zuul:
host: http://a-zuul-host.elb.amazonaws.com:80
ignoredServices: '*'
routes:
app1:
path: /
domain: app1.com
serviceId: APP_1_SERVICE
app2:
path: /
domain: app2.com
serviceId: APP_2_SERVICE

这是可能的还是我需要设置另一个 zuul 实例?

最佳答案

这是一种可能的解决方案:

  • 在 zuul 配置中添加通配符路由规则以将任何请求路由到/**,并禁用此路由规则的剥离前缀。
  • 添加类型为 的新路由过滤器路线 并让它在 之前运行RibbonRoutingFilter 因为对于无效主机/**,此过滤器中将发生异常。
  • 在您的 zuul yaml 配置中为不同的域添加域配置。
  • 使用您的过滤器和域配置来根据域更改您的主机。

  • 这是一个示例代码:
    zuul:
    ignored-patterns: /health, /info
    routes:
    wildcard:
    path: /**
    url: /**
    stripPrefix: false

    你必须忽略 /健康 因为它将与通配符路由规则匹配,并且会导致问题——应该映射到一个 Spring 执行器,所以我们忽略它,让一切都像以前一样处理。

    对于域配置,这里是一个示例:
    domain:
    service_1:
    domain-matcher: https://api_1.com:[0-9]+
    url: https://service_1.com
    service_2:
    domain-matcher: https://api_2.com:[0-9]+
    url: https://service_2.com

    在您的过滤器中,现在只需根据匹配的域设置我们的主机。

    关于routing - 如何在 Zuul 中配置特定于域的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37328840/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com