kong+konga


kong+kongau 

 

注意kong1.0與之前版本API發生了很大的改動,所以是不兼容的,kongav0.14.0是匹配kong1.0+的,不兼容1.0之前的。可以根據自己的需求進行選擇。

konga是kong的一個ui,可以操作kong API。
部署版本kongv1.1.1,kongav0.14.1

部署postgres參考我的[微服務之kong+consul(二) - 詩碼者 - 博客園](https://www.cnblogs.com/cuishuai/p/9219195.html)。
部署新版本的kong:[Install - CentOS | Kong - Open-Source API Management and Microservice Management](https://docs.konghq.com/install/centos/?_ga=2.75002770.1697313124.1532572204-1249667919.1526638850)

修改配置文件:
1)日志路徑
2)dns_resolver = 10.42.3.6
將kong的dns_resolver地址填上consul的地址,需要在啟動consul的時候把dns端口指定為53

由於kong-dashboard不支持新的kong的特性,所以決定使用konga。

konga的github地址:[GitHub - pantsel/konga: More than just another GUI to Kong Admin API](https://github.com/pantsel/konga)

安裝方式采用npm安裝:

數據庫使用mongodb

docker部署mongodb:
docker  volume create mongo-data

docker run -d -it -p 27017:27017 -v mongo-data:/data/db --name mongodb docker.io/mongo

如果mongodb的端口不是27107,並且需要用戶驗證,需要修改konga/config目錄下面的connect.js

mongo: {
adapter: 'sails-mongo',
url: process.env.DB_URI || null,
host: process.env.DB_HOST || 'localhost',
port: process.env.DB_PORT || 27020,
user: process.env.DB_USER || null,
password: process.env.DB_PASSWORD || null,
database: process.env.DB_DATABASE || 'konga_database',
},

 

准備:

安裝node、npm使用nvm安裝https://github.com/creationix/nvm

安裝bower、gulp

npm install -g bower
npm install --save gulp-install

install:

cd /data/konga
npm i

此時會有一個WARN:

npm WARN lifecycle kongadmin@0.14.3~postinstall: cannot run in wd %s %s (wd=%s) kongadmin@0.14.3 bower --allow-root install /data/konga

需要手動安裝一下:

bower --allow-root install /data/konga

配置:

cd  /data/konga
cp .env_example .env

# cat  .env

PORT=1337
NODE_ENV=production
DB_ADAPTER=mongo
KONGA_LOG_LEVEL=warn

這里adapter選擇使用mongo。


啟動:

nohup npm run production &

 

為了方便使用,寫了一個啟動腳本:

# cat /usr/local/bin/konga

#!/bin/bash
# start konga
le=`lsof -i:1337 | wc -l`
pid=`lsof -i:1337 | grep LISTEN | awk '{print $2}'`

case $1 in
start)
if [ $le -eq 0 ];then
cd /data/konga
nohup npm run production >>/data/konga/nohup.out 2>&1 &
echo "kongs start successful!"
else echo "konga already startd!"
fi
;;
stop)
kill -9 $pid
esac

 

#1337是服務的監聽端口,這個需要修改為自己的服務端口。

 

使用konga添加服務:

左側編輯欄找到"SERVICES"-->+ADD NEW SERVICE,此時會彈出CREATE SERVICE,填寫相應的service信息就好了。

 

這里創建一個demo,NAME就是service name,這里是demo,Description就是對此服務的一個簡單的描述,這里是it's a  demo;Tags 是服務標簽。Uri不用寫,我們直接指定協議,使用的是http。Host指的是后端的server地址,我這里采用的是consul注冊的,所以只提供一個服務域名,具體consul使用可參考我的博客。當然這里可以寫自己的服務ip地址,下面的port如果用consul,那就填寫80,如果使用服務ip就直接填寫服務端口。ptah就是后面的匹配跳轉,這個寫/,或默認就好了,我們去Routes里面定義。

提交了以后,demo這個service就創建完成了。可以去SERVICES里面去查看:

 

接下來,為demo創建Routes:選擇上面頁面的Routes選項,選擇+ ADD ROUTE,會彈出ADD ROUTE TO DEMO的對話框,然后填寫信息,(!!!每個選項填寫完成都必須按回車鍵確認,否則填寫不生效):

 

 如圖,path填寫訪問的路徑,/demo。其他的照着填即可,點擊SUBMIT ROUTE,即完成添加。

 

這樣就可以通過kong的域名進行訪問:比如kong綁定的域名是kong.www.com.訪問kong.www.com/demo就可以訪問自己的服務。

consul中的注冊文件:

{
    "service": {
        "name": "demo",
        "address": "10.42.3.6",
        "tags": [
            "demo"
        ],
        "port": 4072,
        "check": {
            "id": "demo",
            "name": "demo status",
            "http": "http://10.42.3.6:4072/health",
            "interval": "5s",
            "timeout": "2s"
        }
    }
}

重新加載文件即可。

consul-reload

consul的使用參考我的另外一篇博客http://www.cnblogs.com/cuishuai/p/8194345.html。

 

訪問:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM