一 konga 的github地址
konga安装参考
① Kong 可视化UI 选择
+++++++++++++++ '官方kong-dashboard' +++++++++++++++1)收费:当前kong的'社区版是没有dashboard'的,但是'付费的企业版'是有带的2)kong-dashboard最新版本v3.6.0,只支持到kongv0.14.x,对于更高的kong版本,功能支持不齐全+++++++++++++++ 'konga' +++++++++++++++ 1)konga支持'两种'方式部署分别是docker和nodejs原生部署,这里'采用 nodejs 原生安装'方法2)konga是一个nodejs写的界面,'开源'的3)前提 'git [拉konga源代码]'、'nodejs [npm工具]'、'postgres [数据库持久化]'安装完毕强调: Konga 的所有'UI操作'也是基于'HTTP Restful API'进行的
② konga特征说明
③ 安装nodejs和npm
说明:'konga'安装在和'kong'同一台机器'VM'上
+++++++++ 'npm下载慢' +++++++++1)先'执行'这个命令 npm config set strict-ssl false2)设'国内'镜像源 npm install -g cnpm --registry=http://registry.npm.taobao.org -->'cnpm工具'npm config set registry https://registry.npm.taobao.orgnpm config get registry -->'查看使用哪个镜像源'3)npm config set registry https://registry.npmjs.org/ 换回'默认值'备注: 官网'有时候'可能比'淘宝源'更快
使用了淘宝源还是很慢
③ pg数据库初始化
说明: 这里'kong'和'konga'使用同一个'pg'数据库CREATE ROLE konga LOGIN PASSWORD 'konga';CREATE DATABASE konga OWNER konga;grant all privileges on database konga to konga;
④ 下载konga并启动
git clone https://github.com/pantsel/konga.git
cd konga推荐:安装'konga'一定要'使用'代理git config --global http.proxy 'http://user:passwd@proxy_ip:proxy_port'
npm i安装报错汇总 相关参考 Encountered end of file git下载加速
This is probably not a problem with npm. There is likely additional logging output above
gyp ERR! stack Error: EACCES: permission denied
npm i --unsafe-perm -->'root帐号临时执行'1) npm 出于安全考虑'不支持以 root 用户'运行2) 即使你用 root 用户身份运行了,npm 会自动转成一个叫 'nobody 的用户'来运行3) 不要使用'root权限'安装,应该sudo npm installyum install gcc-c++ gcc make camke -y --> "基础软件的安装"
node_modules目录和package.json文件
1)导航到'项目(konga)'目录,在把之前装的都'清空'rm -rf node_modules package-lock.json
npm cache clear --force
npm --unsafe-perm
⑤ 生产环境迁移数据库并启动
说明: konga'不支持'postgresql的11、'12'、13版本,只能选择'postgresql9.5+或10'版本
+++++++++++++ '这里使用容器安装pg:9.6' +++++++++++++docker volume create konga-pgdocker run -d --name konga-database \-p 5433:5432 \-v konga-pg:/var/lib/postgresql/data \-e "POSTGRES_USER=konga" \-e "POSTGRES_DB=konga" \-e "POSTGRES_PASSWORD=konga" \postgres:9.6
推荐: nohup npm start production &
⑥ 客户端登陆Konga UI
访问方式: ip:1337说明: 先'注册',再'登陆'
⑦ konga汉化
说明: '了解'即可
⑧ 创建CONNECTIONS
说明: konga完成登录后,由于没'有连接到Kong',因此需要'新建'一个到Kong的链接备注: 一个'Konga'可以管理多个'Kong'
1)当我们使用'第三方UI来'连接管理kong的时候,如konga2)需要通过'连接kong'的管理端口['一般使用8001']来对其进行管理
⑨ konga安装canary灰度插件
1)Kong开源版官方'不提供'该插件,'Enterprise企业版'支持,但是收费备注: 也有'第三方插件'支持kong-plugins-canary2)支持通过'ip、header、cookie、args'四种匹配方案来做'灰度流量'控制3)并支持'单个、多个、正则'匹配规则
官方所有插件地址
官方灰度插件的地址
+++++++++++ '说明' +++++++++++
+++++++++++++ '分割线' +++++++++++++ 说明: 企业版的'kong'自带了'canary'灰度插件,'不授权'不能使用,导致安装'第三方'冲突
ENTERPRISE LICENSE
⑩ 第三方灰度插件
1)推荐源码安装
说明:下面使用'非企业版kong'安装第三方canary补充: 基于'kong2.3安装的canary'++++++++++++++ 'Kong 灰度插件canary' ++++++++++++++# 在线安装 lua-resty-iputils
luarocks install lua-resty-iputils# 安装 canarygit clone https://github.com/raoxiaoyan/kong-plugins-canary.git-- 源码项目'没有'1.0.4wget https://luarocks.org/manifests/raoxiaoyan/canary-1.0.4-1.rockspecunzip kong-plugins-canary-master.zipcd kong-plugins-canary-mastercp ../canary-1.0.4-1.rockspec .luarocks make canary-1.0.4-1.rockspec1)启用canary,在/etc/kong/kong.conf增加如下配置:plugins = bundled,canary2)kong restart 重启即可备注: 有'在线'和'离线'两种方式安装
2)原理讲解
canary插件的'使用范围'支持global、service、route1)canary_upstreamcanary_upstream为'必填项',设置'灰度策略匹配后',默认'转发'的上游代理名称2)'灰度规则1' -->iprange: 设置ip支持'单个、多个、范围分段IP(满足CIDR notation规则)',以下值都为合法192.168.1.100 172.25.2.100/24upstream: 非必填项,设置'符合ip灰度规则'时,转发的上游代理名称3)'灰度规则2' --> uidon :uid的参数'从哪里'获取;参数所处位置'可选'为:header:'请求头'中获取uid参数cookie:从'cookie中'获取uid参数args: 从'请求参数'中获取uid参数name: uid在'请求中的参数名'range: 设置uid的匹配规则,支持单个、多个、'正则匹配'(前缀、后缀等)[1]、1234[2]、^UID%d+$ //匹配前缀upstream: 非必填项,设置符合'uid灰度规则'时,转发的上游代理名称4)'灰度规则3' --> customize -->'自定义'规则5)优先级如下:ip > uid > customize > default
konga的离线和在线安装
Kong相关博客参考