在Kong的git上可以看到丰富的三方工具,本文选用的管理UI也是上面的一个admin ui 项目。
Here is a list of third-party tools maintained by the community:
Ansible role for Kong on Ubuntu
• Biplane: declarative configuration in Crystal
• Bonobo: key management (with Mashery migration scripts)
• Chef cookbook
• Django Kong Admin: Admin UI in Python
• Jungle: Admin UI in JavaScript
• Kong Dashboard: Admin UI in JavaScript
• Kong for CanopyCloud
• Kong image waiting for Cassandra
• Kong image for Tutum
• Kong-UI: Admin UI in JavaScript
• Konga: CLI Admin tool in JavaScript
• Kongfig: Declarative configuration in JavaScript
• Kongfig on Puppet Forge
• Puppet recipe
• Python-Kong: Admin client library for Python
• .NET-Kong: Admin client library for .NET
一、安装Dashboard
安装环境:centos 6.7
整个准备工作以使用源码安装为例:
-
使用的管理UI kong-dashboard 基于Node.js ,所以需要安装nodejs;
-
由于会使用到github资源和可能偶尔在墙外的资源,所以建议使用淘宝npm;
-
同时会使用到bower ;
-
npm install 过程需要c++ 11(由于我的环境gcc版本低于4.8无法支持c++11,需要升级gcc版本到4.8或4.8以上)
-
git clone下来的文件夹权限;
-
如果使用root用户进行install,则需要修改。如下图:7. 准备工作完成之后,就可以根据git步骤上进行安装了:
-
Pull repository
git clone https://github.com/PGBI/kong-dashboard.git sudo chmod -R 777 kong-dashboard (该步非必须,需要根据实际情况进行文件夹读写权限设置) cd kong-dashboard
-
Build Kong Dashboard
sudo npm install --unsafe-perm --registry=https://registry.npm.taobao.org
-
Start Kong Dashboard
npm start
-
To start Kong Dashboard on a custom port
npm start -- -p [port]
启动成功后,访问 http://localhost:8080 打开Dashboard。
二、使用Admin UI
下面只简单提及一些需要注意的地方,具体使用和UI上显示内容的含义可参考kong的doc。
-
配置注意地址(kong的管理地址,默认为http://kong server机器或绑定的域名:8001
后面不要多加"/"如下图 否则点击API会出现not found api之类的提示,当然也要
确保kong server正常运行中。
-
新增API与使用新增的API时,需要注意如果需要使用地址方式指向api,即需要勾选strip-request path;如果使用head中带请求地址的方式,需要在head中带 X-Host-Override post.demo (即request host)
使用时需要注意,请求的地址为http://kong server机器或绑定的域名:8000 (下图为在url中带请求的api的方式)
-
插件使用实例,使用key-auth插件:
- 需要在api基础上新建插件auth key
- 设置插件 keyname(需要注意此keyname会在后面url中使用)
当启用插件后,如果后面keyname在地址栏或header中不正确会有如下提示:
如果后面key在地址栏或header中不正确会有如下提示
- 新建customer并设置其key的内容也可以认为为keyname对应的值上面(该处暂时使用的对应上述auth key),用于实际访问使用
- 使用(请求的地址为http://kong server机器或绑定的域名:8000)
或者header方式如下图: