爲什麼kong這麼火熱呢?當然是它擁有強大的插件羣來解決我們本來需要重複手動配置或者需要自己實現的內容,kong在1.X版本加強了對於插件的支持,官方提供的插件就是幾十個,通過插件可以帶來各種場景更加方便使用
比較使用的功能:
- Oauth2.0
- Hmac Auth
- IP限制
- CORS 跨域配置
- 限速
- 請求大小限制
- Prometheus監控
- Http日誌
附上:
喵了個咪的博客:http://w-blog.cn
kong官網:https://konghq.com/
konga官網:https://github.com/pantsel/konga
PS:Kong版本必須 >= 1.0.0才能正常使用konga
一,授權驗證
在接口請求中權限驗證是一個恆久不變的話題,Kong自帶了6中加密方式,最常用的用戶密碼登錄,Oauth2.0,Hmac都在其中,
我們先創建一個basic Auth,直接確認即可:
此時請求會有如下返回:
雖然開啓了驗證,但是還沒有錄入用戶名密碼,kong裏面有一個Consumer的概念,需要增加一個Consumer
只有輸入正確才能
但是這樣的方式在網頁上用的比較多一些,接口一般使用key驗證,我們先先出basic插件
增加key—auth配置
默認請求會提示No Api key
我們只需要加入剛剛配置的參數名和值纔可以正常請求
二,插件部分生效
通過上述UI配置的插件的生效範圍都是全局生效的,當然一般我們一個網關可能代理了N個service的入口,如果插件的生效範圍只是全局基本上就限制了使用範圍,當然kong的設計者考慮的比較周到,是否全局都可,但是此時的konga並沒有支持部分生效的UI配置,所以我們只能通過使用官方管理API的方式來創建只對於莫個service生效的插件,首先我們需要獲取service的ID,通過kong的API文檔
Admin API - v1.0.x | Kong - Open-Source API Management and Microservice Management
在創建插件的時候加入對應的service.id即可
konga雖然無法創建但是可以查看
這個service對應的請求就一定要加密
另外一個可以不用就可以正常調用
三、證書
填寫證書下面填寫具體的域名就配置好了這個證書了
四、上游服務器負載,健康檢查
一般從運營的角度上來說一個服務會有多個上游服務器,一般我們會採用一些開源的組件來去配置LSV和nginx都可以做到,kong是基於nginx當然也能做到,負載均衡和健康檢查
先清理所有的service和路由,並且需要準備兩臺服務器
curl 192.168.1.30
uat1
curl 192.168.1.31
uat2
默認端口是8000
再去創建service
最後創建路由
下面就實現了負載均衡的目的
curl 192.168.3.123:8000
uat1
curl 192.168.3.123:8000
uat1
curl 192.168.3.123:8000
uat2
curl 192.168.3.123:8000
uat2
curl 192.168.3.123:8000
uat1
五、配置備份管理機制
kong也有它的缺陷,因爲默認是API的配置方式,所以備份很困難,konga剛好提供了一套kong備份機制