1、概述
Kong的功能已經(jīng)足夠強(qiáng)大,但很可惜,它的免費(fèi)版是沒有提供GUI界面的,通過CLI使用始終相對(duì)不便。于是,網(wǎng)上一些有志之士開發(fā)了相關(guān)的GUI界面。其中,做得比較好的有:
- Kong dashboard,https://github.com/PGBI/kong-dashboard,已經(jīng)長(zhǎng)期沒有更新,只支持到Kong的0.9版本,目前Kong的最新版本是1.2.x
- Konga,https://github.com/pantsel/konga,功能完善,持續(xù)更新中
因此,我們采用了Konga作為Kong的GUI界面。
2、安裝
Konga是使用NodeJS開發(fā)的項(xiàng)目,因此需要下載源碼并安裝。受網(wǎng)速影響,整個(gè)安裝配置過程大約持續(xù)30~90分鐘之間。
$ git clone https://github.com/pantsel/konga.git
$ cd konga
$ npm i
由于Konga依賴比較多,安裝起來比較麻煩,尤其安裝在CentOS等其他發(fā)行版的Linux更加復(fù)雜,可以把已經(jīng)安裝好的環(huán)境克隆過去,然后試試以下命令
$ npm rebuild node-sass
$ npm uninstall --save node-sass
$ npm install --save node-sass
$ npm cache clean
$ npm install --save node-sass
$ sudo npm install --unsafe-perm node-sass
3、配置
項(xiàng)目?jī)?nèi)已經(jīng)提供了配置文件用例.env_example,復(fù)制為.env并修改配置項(xiàng)即可。
cp .env_example .env
gedit .env
關(guān)鍵的配置有PORT、DB_ADAPTER、DB_URI、DB_USER、DB_PASSWORD等。
4、數(shù)據(jù)庫集成
Konga的持久化需要數(shù)據(jù)庫支撐,可用的數(shù)據(jù)庫有:
- MySQL
- MongoDB
- PostgresSQL
由于Kong本身使用了PostgresSQL數(shù)據(jù)庫,所以Konga也使用PostgresSQL。Konga使用PostgresSQL時(shí)有些特別,需要用系統(tǒng)當(dāng)前用戶名,因此要以當(dāng)前用戶名創(chuàng)建DB管理員。具體原因未知,也可能哪里設(shè)置的問題。
$ sudo -u postgres createuser --superuser ubuntu
$ sudo -u postgres psql
postgres=# CREATE DATABASE konga OWNER ubuntu;
postgres=# \q
$ sudo -u ubuntu psql
ubuntu=# \password
# 此處設(shè)置密碼
ubuntu=# \q
設(shè)置密碼后,還需要修改數(shù)據(jù)庫密碼算法。
sudo vim /etc/postgresql/10/main/pg_hba.conf
把
host all all 127.0.0.1/32 md5
修改為
host all all 127.0.0.1/32 trust
然后重啟數(shù)據(jù)庫
sudo /etc/init.d/postgresql restart
5、數(shù)據(jù)庫初始化
$ node ./bin/konga.js prepare [--adapter postgres --uri postgresql://localhost:5432/konga]
6、運(yùn)行
根據(jù)個(gè)人喜好的方式,以npm命令運(yùn)行
$ npm run production
或pm2命令運(yùn)行(建議)
$ sudo npm i pm2 -g
$ pm2 start app.js --name konga
7、注冊(cè)
用瀏覽器打開Konga地址,一般是http://localhost:1377,顯示界面如下:
由于當(dāng)前沒有管理員,所以需要注冊(cè)一個(gè)管理員。然后登錄

image.png
8、建立鏈接
由于沒有連接到Kong,因此需要新建一個(gè)到Kong的鏈接。

image.png
打開相應(yīng)鏈接,看到如下界面:

image.png
左邊是菜單欄,右邊主界面顯示了當(dāng)前Kong的概要信息。點(diǎn)擊菜單欄的相應(yīng)項(xiàng)目,可以設(shè)置service和route等。
系列鏈接