apisix~按域名进行请求转发

路由route

路由(Route)是请求的入口点,它定义了客户端请求与服务之间的匹配规则。路由可以与服务(Service)、上游(Upstream)关联,一个服务可对应一组路由,一个路由可以对应一个上游对象(一组后端服务节点),因此,每个匹配到路由的请求将被网关代理到路由绑定的上游服务中。

如图:

如果前端调用后端接口时,前缀都是/kpi/index时,那apisix就不知道应该选择哪个路由了,这时,我们需要为路由添加域名,,这个域名就是request header中的host,即前端调用apisix-gateway时的域名,这个域名是需要解析到apisix-gateway的。

上游upstream

上游列表包含了已创建的上游服务(即后端服务),可以对上游服务的多个目标节点进行负载均衡和健康检查。

上游中指定了你要转发到的后端服务,可以是具体的节点IP+端口,也可以通过服务发现来指定,如kubernetes,nacos,dns等,如图:

路由中按域名转发的必要性

首先,这里的域名是指gateway的域名,一般是前端网站有个域名,然后它在调用后端服务时,会使用apisix-gateway的域名,我们在apisix-gateway的域名可能是多个,按着具体的业务去划分,不好混淆。

如图所示,下面路由中出现的域名,都是gateway按着业务来划分的域名,与具体前端的应用域名没有关系

也就是说,当apisix收到新的请求时,会查看请求头中host的值,如果有匹配的路由,就取出来,再进行path前缀的过滤。

posted @ 2024-06-17 16:22  张占岭  阅读(150)  评论(0编辑  收藏  举报