手機app出現badgateway修復方法,bad gateway是什麼意思

在本篇中,您將了解如何通過路由暴露服務。

服務和路由是什麼?

服務和路由對象允許您使用Kong Gateway向客戶端暴露服務。在配置對API的訪問時,您將從指定一個服務開始。在Kong Gateway中,服務是表示外部上游API或微服務的實體——例如,數據轉換微服務、賬單API等等。

服務的主要屬性是它的URL,服務在其中監聽請求。可以使用單個字符串指定URL,也可以分別指定其協議、主機、端口和路徑。

在開始對服務發出請求之前,需要向其添加一個路由。路由決定請求在到達Kong Gateway後如何(以及是否)發送到它們的服務。

單個服務可以有多個路由。配置好服務和路由後,您就可以開始通過Kong Gateway發出請求了。

此圖說明了通過服務路由到後端API的請求和響應的流量。Kong Gateway 暴露您的服務

服務路由到後端API的請求和響應的流程

添加服務

出於本例的目的,您將創建一個指向Mockbin API的服務。Mockbin是一個「echo」類型的公共網站,它將請求作為響應返回給請求者。這種可視化將有助於了解Kong Gateway如何代理API請求。

Kong Gateway在端口8001上公開RESTful管理API。網關的配置(包括添加服務和路由)是通過請求Admin API完成的。

可以通過以下三種方式添加:

  • Admin API

1.使用名稱example_service和URL http://mockbin.org定義服務。

使用cURL:

 $ curl -i -X POST http://<admin-hostname>:8001/services 
 --data name=example_service 
 --data url='http://mockbin.org'

或者使用HTTPie:

 $ http POST :8001/services name=example_service url='http://mockbin.org'

如果服務成功創建,您將收到一條201成功消息。

2.驗證服務的端點。

使用cURL:

 $ curl -i http://<admin-hostname>:8001/services/example_service

或者使用HTTPie:

 $ http :8001/services/example_service
  • Kong Manager

1.在Kong Manager的Workspaces選項卡上,滾動到工作區部分並單擊默認工作區。這個示例使用默認的工作空間,但是您也可以創建一個新的工作空間,或者使用一個現有的工作空間。

2.向下滾動到Services並單擊Add a Service。

3.在創建服務對話框中,輸入名稱example_service和URL http://mockbin.org。

4.單擊Create。

服務被創建,頁面自動重定向回example_service概覽頁面。

  • decK (YAML)

1.在Kong網關的kong.yaml文件中,定義一個名為example_service的服務,URL為http://mockbin.org:

_format_version: "1.1"
 services:
 - host: mockbin.org
   name: example_service
   port: 80
   protocol: http

2.保存文件。從您的終端,同步配置以更新Kong:

$ deck sync

該消息應該顯示您正在創建一個服務:

 creating service example_service
 Summary:
 Created: 1
 Updated: 0
 Deleted: 0

添加路由

要想通過Kong Gateway訪問該服務,您需要為其添加一個路由。

可以通過以下三種方式添加:

  • Admin API

為客戶端請求的特定路徑服務(example_service)定義一個路由(/mock)。注意,要使路由與服務匹配,必須設置至少一個主機、路徑或方法。

使用cURL:

  $ curl -i -X POST http://<admin-hostname>:8001/services/example_service/routes 
  --data 'paths[]=/mock' 
  --data name=mocking

或者使用HTTPie:

 $ http :8001/services/example_service/routes paths:='["/mock"]' name=mocking

一條201消息表示路由已成功創建。

  • Kong Manager

1.在example_service概覽頁面中,向下滾動到Route部分並單擊New Route。Create Route對話框將顯示自動填充服務名稱和ID號的服務字段。此字段是必需的。注意:如果服務字段沒有自動填充,請單擊左側導航窗格中的Services。找到您的服務,單擊id字段旁邊的剪貼板圖標,然後返回到創建路由頁面並將其粘貼到服務字段。

2,為路由輸入一個名稱,以及至少以下字段中的一個:主機、方法或路徑。對於這個例子,使用以下方法:

  1. 名字輸入「mock」。
  2. 路徑,單擊添加路徑並進入/mock。

3.單擊Create。

創建路由後,您將自動重定向回example_service概覽頁面。新路由出現在路由部分的下面。

  • decK (YAML)

1.將以下內容粘貼到kong.yaml文件,在example_service條目下:

 routes:
 - name: mocking
   paths:
   - /mock
   strip_path: true

你的文件現在應該是這樣的:

 _format_version: "1.1"
 services:
 - host: mockbin.org
   name: example_service
   port: 80
   protocol: http
   routes:
   - name: mocking
     paths:
     - /mock
     strip_path: true

2.同步配置:

$ deck sync

3.你可以用Kong現在使用的配置更新你的本地文件(可選):

小心!任何後續的堆轉儲將覆蓋現有的kong.yaml文件。根據需要創建備份。

 $ deck dump

另外,在同步對配置的更改時,您還將在decK顯示的差異中看到此配置。

你會注意到服務和路由現在都有了你沒有顯式設置的參數,這些是每個服務和路由創建時使用的默認參數:

services:
 - connect_timeout: 60000
   host: mockbin.org
   name: example_service
   port: 80
   protocol: http
   read_timeout: 60000
   retries: 5
   write_timeout: 60000
   routes:
   - name: mocking
     paths:
     - /mock
     path_handling: v0
     preserve_host: false
     protocols:
     - http
     - https
     regex_priority: 0
     strip_path: true
     https_redirect_status_code: 426

你可以這樣做後,任何deck同步看到Kong Gateway的最新配置。

本指南的其餘部分繼續使用配置文件的簡化版本,但不為每個步驟執行deck轉儲,以使其易於遵循。

驗證路由將請求轉發給服務

  • Admin API

使用Admin API,發出以下信息:

使用cURL:

$ curl -i -X GET http://<admin-hostname>:8000/mock/request

或者使用HTTPie:

$ http :8000/mock/request
  • Web瀏覽器

默認情況下,Kong在端口8000上處理代理請求。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/231011.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-10 18:45
下一篇 2024-12-10 18:45

相關推薦

發表回復

登錄後才能評論