kong+konga

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。

 

访问:

本站公众号
   欢迎关注本站公众号,获取更多信息