小秦哥 发表于 2024-6-17 15:03:50

apisix~按域名进行请求转发

路由route

路由(Route)是请求的入口点,它定义了客户端请求与服务之间的匹配规则。路由可以与服务(Service)、上游(Upstream)关联,一个服务可对应一组路由,一个路由可以对应一个上游对象(一组后端服务节点),因此,每个匹配到路由的请求将被网关代理到路由绑定的上游服务中。
如图:
https://images.cnblogs.com/cnblogs_com/lori/2369799/o_240617081000_QQ%E6%88%AA%E5%9B%BE20240617160832.png
如果前端调用后端接口时,前缀都是/kpi/index时,那apisix就不知道应该选择哪个路由了,这时,我们需要为路由添加域名,,这个域名就是request header中的host,即前端调用apisix-gateway时的域名,这个域名是需要解析到apisix-gateway的。
上游upstream

上游列表包含了已创建的上游服务(即后端服务),可以对上游服务的多个目的节点进行负载平衡和康健检查。
上游中指定了你要转发到的后端服务,可以是具体的节点IP+端口,也可以通过服务发现来指定,如kubernetes,nacos,dns等,如图:
https://images.cnblogs.com/cnblogs_com/lori/2369799/t_240617081345_QQ%E6%88%AA%E5%9B%BE20240617161329.png
路由中按域名转发的必要性

首先,这里的域名是指gateway的域名,一般是前端网站有个域名,然后它在调用后端服务时,会利用apisix-gateway的域名,我们在apisix-gateway的域名可能是多个,按着具体的业务去划分,不好肴杂。
如图所示,下面路由中出现的域名,都是gateway按着业务来划分的域名,与具体前端的应用域名没有关系
https://images.cnblogs.com/cnblogs_com/lori/2369799/o_240617081812_QQ%E6%88%AA%E5%9B%BE20240617161751.png
也就是说,当apisix收到新的请求时,会检察请求头中host的值,如果有匹配的路由,就取出来,再进行path前缀的过滤。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: apisix~按域名进行请求转发