基于HTTP请求源的路由

基于HTTP请求源的路由,http,kubernetes,routes,http-headers,istio,Http,Kubernetes,Routes,Http Headers,Istio,我们需要将http请求从不同的来源路由到不同的服务器。我们有两组相同的AppServer,它们使用不同的名称部署 adminserver-此服务器将处理来自UI应用程序的HTTP请求。路由规则已配置为使用/app将请求路由到此服务器 apiserver-来自外部系统的REST API请求将由该服务器处理。路由规则已配置为使用/api将请求路由到此服务器 这样做是为了根据请求的类型分配负载。这使我们能够根据需要独立扩展这些服务器 现在我们有一个场景,其中一个UI应用程序正在进行RESTAPI调用以

我们需要将http请求从不同的来源路由到不同的服务器。我们有两组相同的AppServer,它们使用不同的名称部署

  • adminserver-此服务器将处理来自UI应用程序的HTTP请求。路由规则已配置为使用
    /app
    将请求路由到此服务器
  • apiserver-来自外部系统的REST API请求将由该服务器处理。路由规则已配置为使用
    /api
    将请求路由到此服务器
  • 这样做是为了根据请求的类型分配负载。这使我们能够根据需要独立扩展这些服务器

    现在我们有一个场景,其中一个UI应用程序正在进行RESTAPI调用以获取一些数据。由于请求url以
    /api
    开头,因此它被路由到apiserver。由于这是来自UI应用程序的请求,我们仍然希望将此请求路由到adminserver

    我们正在探索的方法之一是配置基于请求头的路由规则。这将使我们能够将带有特定头的请求路由到adminserver。在这里,我们想知道是否应该为此引入一个自定义头,或者使用任何现有的HTTP请求头,例如
    origin
    referer

    请求头
    origin
    似乎准确地捕获了诸如主机、端口等的源详细信息,而
    referer
    包含请求路径、查询参数等

    我在这里寻找正确方法的建议。
    origin
    的文档表明,如果请求是在无cors模式下发出的,浏览器可能不会添加此标题

    注1:我们正在尝试对遗留应用程序建模,以支持独立的扩展/路由等。 注2:应用程序正在Kubernetes平台中部署,路由规则在Istio的帮助下配置