天天看點

Kong 網關API安裝部署以及應用執行個體----------騰雲駕霧背景介紹工作原理系統環境介紹Kong部署cassandra部署python2.7部署Kong 配置kong在指令行的操作示範搭建kong UI Admin配置kong UI admin為kong-dashboard設定通路權限故障申報kong服務監控

之前項目上api的接口用的是自己nginx搭建的反向代理接口,覺得功能性比較查差,故而另辟蹊徑找到了kong作為接口網關服務。

Kong 網關API安裝部署以及應用執行個體----------騰雲駕霧背景介紹工作原理系統環境介紹Kong部署cassandra部署python2.7部署Kong 配置kong在指令行的操作示範搭建kong UI Admin配置kong UI admin為kong-dashboard設定通路權限故障申報kong服務監控

kong會把所有的後端接口對應的資料放到cassandra資料庫中,對外隻暴漏自己的接口,這樣對于前端的開發人員來說就透明了許多,也友善了許多,後端的運維人員管理起來也友善了許多。

檢查kong是不是正常啟動了,預設不修改配置檔案的情況下會報連接配接不上PostgreSQL,這裡先忽略,繼續裝cassandra

正常啟動的話會輸出:[OK] Started

kong的監聽端口:

這裡就不示範安裝了,yum也行,綠色版解壓也行。java1.7 或者1.8都可以,注意cassandra3.0必須要jdk1.8版本才行。這裡我們由于kong的支援版本是2.x,這裡介紹2.x的安裝。

估計會報這個錯誤

cqlsh是cassandra的用戶端查詢工具

cqlsh客戶的工具需要python2.7支援,centos6.x預設是python2.6版本,這裡我新安裝下python2.7

首先安裝 python 工具需要的額外軟體包 SSL, bz2, zlib

因為yum使用python2.6 故而要改一下yum的環境,不然yum将沒法使用

解決cqlsh報錯問題,下面的步驟可能要耗費很長的時間,建議大家耐心等等

小編發現kong的配置檔案總計三處

最開始的時候,小編裝好資料庫和kong,啟動kong的時候,修改了/etc/kong/kong.conf.default的配置連接配接資料庫的類型為cassandra,啟動的時候死活就是連不上啊,報的還是連不上PostgreSQL資料庫,而且每次重新開機kong服務後,修改後的配置檔案被重置了。真實奇葩,猜想必然這個配置檔案不是主配置檔案啊。

/usr/local/share/lua/5.1/kong/templates/kong_defaults.lua----->主配置檔案,那咱就來看看這個檔案的具體内容吧。

kong 增加api調用

原有接口調用通路路徑:

<a href="http://192.168.1.100:5105/notice/getNotice">http://192.168.1.100:5105/notice/getNotice</a>

添加調用規則語句:

#--url 指定本地的kong通路連接配接

#--d name 指定添加的api的規則名稱

#-d upstream_rul 指定通路原api的host以及端口

#-d request_path 指定請求路徑

添加api規則後通路語句:

<a href="http://192.168.5.250:8000/notice/getNotice">http://192.168.5.250:8000/notice/getNotice</a>

對某個通路規則進行使用者驗證設定

設定語句文法:

#--url 要對那個通路規則進行設定,apis後面對應的是上面設定的api通路規則中設定的name關鍵字,其餘為固定格式

#--data 設定權限通路關鍵字

增加一個使用者:

#--url 規定格式

#--data username 設定增加的使用者名稱

為消費者添加證書:

#--url 倒數第二個請求路徑為要授予的使用者名稱

#--data key 設定的密碼

通過key通路api請求--

or

<a href="http://192.168.5.250:8000/notice/getNotice?apikey=test_randomNum123456">http://192.168.5.250:8000/notice/getNotice?apikey=test_randomNum123456</a>

删除api規則

檢視kong的所有api規則資訊

<a href="http://192.168.5.250:8001/apis">http://192.168.5.250:8001/apis</a>

下載下傳node綠色版,版本5.11.1

<a href="https://nodejs.org/en/blog/release/v5.11.1/">https://nodejs.org/en/blog/release/v5.11.1/</a>

解壓後,追加node中的bin目錄到PATH環境變量中即可。

參考文獻[1]中說:這個神奇的腳本檔案會幫我們下載下傳、配置、安裝依賴庫,可以節約我們大量的時間和精力。

../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib

編譯(注意:此步驟非常耗時)

-j4選項是make對多核處理器的優化,如果不成功請使用 make

解決辦法:sudo yum -y install glibc-devel.i686 glibc-devel

sudo make install

這裡面有一個放長重要的東西,非常重要,小編這個坑足足邁了3次才邁過去。

Compatibility matrix

Kong-Dashboard versions

Kong versions

Node versions

1.x.x

0.6.x, 0.7.x, 0.8.x, 0.9.x

2.x.x

0.10.x

3.x.x

0.9.x, 0.10.x, 0.11.x

&gt;= 6.0.0

Install Kong Dashboard

npm install -g kong-dashboard@v1

Start Kong Dashboard

kong-dashboard start

To start Kong Dashboard on a custom port

kong-dashboard start -p [port]

To start Kong Dashboard with basic auth

kong-dashboard start -a user=password

這樣啟動會在背景運作,斷掉終端程序還在

nohup kong-dashboard start -p 8080 -a xin=sir &gt;kong-dashboard.log &amp;

Kong 網關API安裝部署以及應用執行個體----------騰雲駕霧背景介紹工作原理系統環境介紹Kong部署cassandra部署python2.7部署Kong 配置kong在指令行的操作示範搭建kong UI Admin配置kong UI admin為kong-dashboard設定通路權限故障申報kong服務監控

如果kong有使用者名和密碼那麼選擇Basic auth,配置注意位址(kong的管理位址,預設為http://kong server機器或綁定的域名:8001)後面不要多加"/"如下圖 否則點選API會出現not found api之類的提示,當然也要確定kong server正常運作中

Kong 網關API安裝部署以及應用執行個體----------騰雲駕霧背景介紹工作原理系統環境介紹Kong部署cassandra部署python2.7部署Kong 配置kong在指令行的操作示範搭建kong UI Admin配置kong UI admin為kong-dashboard設定通路權限故障申報kong服務監控

新增API與使用新增的API時,需要注意如果需要使用位址方式指向api即 需要勾選strip-request path 如果使用head中帶請求位址的方式,需要在head中帶 X-Host-Override post.demo (即request host)

Kong 網關API安裝部署以及應用執行個體----------騰雲駕霧背景介紹工作原理系統環境介紹Kong部署cassandra部署python2.7部署Kong 配置kong在指令行的操作示範搭建kong UI Admin配置kong UI admin為kong-dashboard設定通路權限故障申報kong服務監控

通路kong:8000/version/getVersion 就能看到你想看的畫面啦。

Kong 網關API安裝部署以及應用執行個體----------騰雲駕霧背景介紹工作原理系統環境介紹Kong部署cassandra部署python2.7部署Kong 配置kong在指令行的操作示範搭建kong UI Admin配置kong UI admin為kong-dashboard設定通路權限故障申報kong服務監控
Kong 網關API安裝部署以及應用執行個體----------騰雲駕霧背景介紹工作原理系統環境介紹Kong部署cassandra部署python2.7部署Kong 配置kong在指令行的操作示範搭建kong UI Admin配置kong UI admin為kong-dashboard設定通路權限故障申報kong服務監控
Kong 網關API安裝部署以及應用執行個體----------騰雲駕霧背景介紹工作原理系統環境介紹Kong部署cassandra部署python2.7部署Kong 配置kong在指令行的操作示範搭建kong UI Admin配置kong UI admin為kong-dashboard設定通路權限故障申報kong服務監控
Kong 網關API安裝部署以及應用執行個體----------騰雲駕霧背景介紹工作原理系統環境介紹Kong部署cassandra部署python2.7部署Kong 配置kong在指令行的操作示範搭建kong UI Admin配置kong UI admin為kong-dashboard設定通路權限故障申報kong服務監控
Kong 網關API安裝部署以及應用執行個體----------騰雲駕霧背景介紹工作原理系統環境介紹Kong部署cassandra部署python2.7部署Kong 配置kong在指令行的操作示範搭建kong UI Admin配置kong UI admin為kong-dashboard設定通路權限故障申報kong服務監控
Kong 網關API安裝部署以及應用執行個體----------騰雲駕霧背景介紹工作原理系統環境介紹Kong部署cassandra部署python2.7部署Kong 配置kong在指令行的操作示範搭建kong UI Admin配置kong UI admin為kong-dashboard設定通路權限故障申報kong服務監控
Kong 網關API安裝部署以及應用執行個體----------騰雲駕霧背景介紹工作原理系統環境介紹Kong部署cassandra部署python2.7部署Kong 配置kong在指令行的操作示範搭建kong UI Admin配置kong UI admin為kong-dashboard設定通路權限故障申報kong服務監控
Kong 網關API安裝部署以及應用執行個體----------騰雲駕霧背景介紹工作原理系統環境介紹Kong部署cassandra部署python2.7部署Kong 配置kong在指令行的操作示範搭建kong UI Admin配置kong UI admin為kong-dashboard設定通路權限故障申報kong服務監控
Kong 網關API安裝部署以及應用執行個體----------騰雲駕霧背景介紹工作原理系統環境介紹Kong部署cassandra部署python2.7部署Kong 配置kong在指令行的操作示範搭建kong UI Admin配置kong UI admin為kong-dashboard設定通路權限故障申報kong服務監控
Kong 網關API安裝部署以及應用執行個體----------騰雲駕霧背景介紹工作原理系統環境介紹Kong部署cassandra部署python2.7部署Kong 配置kong在指令行的操作示範搭建kong UI Admin配置kong UI admin為kong-dashboard設定通路權限故障申報kong服務監控

可配置項:

year:年

month: 月

day: 天

minute:分鐘,這裡我們配置3,表示每分鐘不能超過3次調用。

Second: 秒

計算頻率的次元:月/天/分鐘/秒, 假如同時配置多個次元,會同時生效。

驗證:連續一分鐘内請求,第四次,報錯

{

"message": "API rate limit exceeded"

}

根據年、月、日、時、分、秒設定限流規則,多個限制同時生效。

比如:每天不能超過10次調用,每分不能超過3次。

當一分鐘内,通路超過3次,第四次就會報錯。

當一天内,通路次數超過10次,第十一次就會報錯。

啟動方式:

Kong 網關API安裝部署以及應用執行個體----------騰雲駕霧背景介紹工作原理系統環境介紹Kong部署cassandra部署python2.7部署Kong 配置kong在指令行的操作示範搭建kong UI Admin配置kong UI admin為kong-dashboard設定通路權限故障申報kong服務監控

問題一:

可能會出現的問題,當使用源碼安裝的時候,啟動後通路8080端口如果出現Not Found,這個多半是因為沒有建構npm造成的。

問題二:

cassandra資料庫啟動後自動down掉,日志報錯報錯說jdk需要大于1.7_25這個更新jdk就可以了。

使用zabbix擷取參數 進行頁面監控就可以了

本文轉自 xinsir999 51CTO部落格,原文連結:http://blog.51cto.com/xinsir/2058768,如需轉載請自行聯系原作者