apisix~按域名進行請求轉發

张占岭發表於2024-06-17

路由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字首的過濾。

相關文章