kong+kongau html
注意kong1.0與以前版本API發生了很大的改動,因此是不兼容的,kongav0.14.0是匹配kong1.0+的,不兼容1.0以前的。能夠根據本身的需求進行選擇。node
konga是kong的一個ui,能夠操做kong API。
部署版本kongv1.1.1,kongav0.14.1git
部署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)github
修改配置文件:
1)日誌路徑
2)dns_resolver = 10.42.3.6
將kong的dns_resolver地址填上consul的地址,須要在啓動consul的時候把dns端口指定爲53mongodb
因爲kong-dashboard不支持新的kong的特性,因此決定使用konga。docker
konga的github地址:[GitHub - pantsel/konga: More than just another GUI to Kong Admin API](https://github.com/pantsel/konga)數據庫
安裝方式採用npm安裝:npm
數據庫使用mongodbgulp
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。
訪問: