天天看點

網關服務Kong和konga介紹安裝使用教程

Kong是一款基于OpenResty(Nginx + Lua子產品)編寫的高可用、易擴充的,由Mashape公司開源的API Gateway項目。Kong是基于NGINX和Apache Cassandra或PostgreSQL建構的,能提供易于使用的RESTful API來操作和配置API管理系統,是以它可以水準擴充多個Kong伺服器,通過前置的負載均衡配置把請求均勻地分發到各個Server,來應對大批量的網絡請求。 Kong是一個在 Nginx 中運作的Lua應用程式,并且可以通過lua-nginx子產品實作,Kong不是用這個子產品編譯Nginx,而是 OpenResty 一起釋出,OpenResty已經包含了 lua-nginx-module, OpenResty 不是 Nginx的分支,而是一組擴充其功能的子產品。它的核心是實作資料庫抽象,路由和插件管理,插件可以存在于單獨的代碼庫中,并且可以在幾行代碼中注入到請求生命周期的任何位置。

Kong主要有三個元件:

Kong Server :基于nginx的伺服器,用來接收API請求。

Apache Cassandra/PostgreSQL :用來存儲操作資料。

Kong dashboard:官方推薦UI管理工具,當然,也可以使用 restfull 方式 管理admin api。

Kong的主要功能包括:

進階路由、負載平衡、健康檢查——所有這些都可以通過管理 API 或聲明性配置進行配置。

使用 JWT、基本身份驗證、ACL 等方法對API 進行身份驗證和授權。

代理、SSL/TLS 終止以及對 L4 或 L7 流量的連接配接支援。

用于實施流量控制、req/res轉換、日志記錄、監控和包括插件開發人員中心的插件。

複雜的部署模型,如聲明式無資料庫部署和混合部署(控制平面/資料平面分離),沒有任何供應商鎖定。

本機入口控制器支援服務Kubernetes。

網關服務Kong和konga介紹安裝使用教程

插件提供了擴充網關使用的進階功能。許多 Kong Inc. 和社群開發的插件(如 AWS Lambda、Correlation ID 和 Response Transformer)都在插件中心展示。

網關服務Kong和konga介紹安裝使用教程
網關服務Kong和konga介紹安裝使用教程

官網:

https://docs.konghq.com/

github:

https://github.com/kong/kong

https://github.com/pantsel/konga

這裡推薦使用docker安裝,并且推薦使用docker-compose進行安裝,因為可以安裝圖形化界面konge,省去了kong和konge整合的煩惱,而且安裝部署友善。

docker安裝可參考我之前寫的這篇博文:Docker簡易安裝教程

如果還是想用linux方式安裝,安裝方式以及問題可參考這篇博文:https://blog.csdn.net/qq_33067315/article/details/108635407

docker-compose安裝指令如下:

sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-<code>uname -s</code>-<code>uname -m</code> -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose

安裝成功之使用<code>docker-compose --version</code>檢視安裝版本,docker-compose的yml的配置檔案說明可參考:https://www.runoob.com/docker/docker-compose.html,這裡就不再過多描述了。

在了解docker-compose之後,我們首先在/opt/目錄下建立kong檔案夾,然後使用touch指令建立一個docker-compose.yml檔案,然後添加如下配置:

docker-compose.yml

上述配置完畢之後,在/opt/kong該目錄下輸入如下指令,進行啟動

docker-compose up -d

然後輸入<code>docker-compose ps</code>進行檢視是否啟動成功,成功示例圖如下:

網關服務Kong和konga介紹安裝使用教程

本示例主要講解一下網關中最常用的路由轉發,原先是A服務配置B服務的位址,然後A服務直接請求B,現在則是A服務配置網關服務的位址,然後請求網關服務,網關服務将A的請求轉發到B服務。

這裡需要使用konga,因為有圖形化界面,操作較為簡單明了,當然用指令也可以實作,方法在上述的官方文檔中給出了示例,這裡就不再過多描述了。

在浏覽器輸入konga的位址,位址為:ip:1337,打開界面之後,預設是需要建立一個管理者的賬号的,按照示例圖的填寫即可,示例圖如下:

網關服務Kong和konga介紹安裝使用教程

注冊完畢之用建立的賬和密碼進行登入,然後填寫kong服務的ip和端口,我這裡設定的是8001,名稱這裡我填寫的kong,可以随意,示例圖如下:

網關服務Kong和konga介紹安裝使用教程

注:由于當時填寫忘記截圖了,就用了配置好的截圖,實際效果基本一緻。

一個簡單路由轉發示例:

kong服務位址: 192.168.10.102

本地服務version檢視位址: 192.168.6.14

登入konga,點選services,點選add new service,建立一個服務,配置資訊填寫如下:

網關服務Kong和konga介紹安裝使用教程

然後點選該服務,在裡面添加路由,然後填寫路由相關資訊。

網關服務Kong和konga介紹安裝使用教程

配置資訊如下:

網關服務Kong和konga介紹安裝使用教程

然後在本地的電腦的hosts檔案添加如下kong服務和域名的映射:

windows路徑: C:\Windows\System32\drivers\etc\hosts

linux路徑: /etc/hosts

映射ok之後,啟動本地的服務,在浏覽器通路 http://pancm.com:8000/或http://pancm.com:8000/version都可看到版本資訊

網關服務Kong和konga介紹安裝使用教程
網關服務Kong和konga介紹安裝使用教程

完整的請求流程如下:

浏覽器域名請求-&gt;通過hosts檔案找到位址-&gt;請求kong服務位址-&gt;根據服務路由配置進行轉發-&gt;請求配置服務的接口位址-&gt;傳回資料

原創不易,如果感覺不錯,希望給個推薦!您的支援是我寫作的最大動力!

版權聲明:

作者:虛無境

部落格園出處:http://www.cnblogs.com/xuwujing

CSDN出處:http://blog.csdn.net/qazwsxpcm    

個人部落格出處:http://www.panchengming.com

如果你對生活感覺到了絕望,請不要氣餒。因為這樣隻會讓你更加絕望!

所謂的希望往往都是在絕望中萌發的,是以,請不要放棄希望!

繼續閱讀