一   Kong安装目录结构的说明

++++++++++++++  '后续看看里面有啥'  ++++++++++++++ /usr/local/bin            --> 'kong'命令的路径/etc/kong/                --> 'kong默认会寻找配置文件'/usr/local/kong           --> 'Kong的日志' -->/usr/local/kong/logs/usr/local/lib/lua/5.1/usr/local/lib/luarocks/usr/local/share/lua/5.1/usr/local/openresty     -->'openresty'自带的库Postgresql'默认'端口: '5432'

二   Kong 快速开始

说明: 通过一些'简单的案例'快速熟悉Kong相关的'concepts'

(1)动态负载均衡

①   假定在nginx.conf中

upstream wzj {server 172.25.2.100:8010  weight=1;server 172.25.2.100:8011  weight=2;
}server {# listen 80;  #kong中是统一的listen(8000)server_name kongtest.wzj.com;location /ceshi {proxy_pass  http://wzj}
}思考: 如何在'Kong'中实现?

②  通过Kong Admin API进行上述配置

Kong 所有的操作都是基于'HTTP Restful API (通过methoad的语义进行区分)'进行的备注: 同一个'API',不同的'method [eg:GET、POST、PATCH]'含义不同补充: API便于'批量'和'自动化'

官方Admin API 地址

③  API快速创建upstream和target

upstream wzj {server 172.25.2.100:8010  weight=1;server 172.25.2.100:8011  weight=2;
}

Upstreams API详细解读

说明: 创建一个名字叫作'wzj'的'upstream_id'

说明: 往'wzj'中添加'两个traget'核心'API': /upstreams/{upstream name or id}/targets/

++++++ '修改targets'  ++++++curl -w '\n' -X PATCH \ 'http://localhost:8001/upstreams/wzj/targets/172.25.2.100:8011' \--data "target=192.168.122.1:8011"

③  创建service和route

Service 详细API操作

说明: 建立upstream和service的'关联',这里是构造'proxy_pass'

Route 详细API操作

说明: 创建一个'location'为'path'的routeAPI: /services/{service name or id}/routes说明: 一个'service'可能有多个'路由策略'

④  用户访问

8001: kong的'管理'默认端口8000: 用户'访问'的默认端口('统一入口')  --通过 'proxy_listen' 修改1337:'konga'默认地址

说明: 通过'host'和'route'唯一确定最终'接收请求'的路由强调: 是'动态负载均衡',修改配置并没有进行'reload|restart'的操作

⑤  小结

(2)Basic Auth 基本身份认证

官方 Basic Authentication 插件

Plugins Admin API

①  新增插件

重点:插件作用'不同'的作用域说明:可以在'服务、路由、全局(不同的粒度)'上配置,后续演示从'Konga'的UI配置++++++++++++  '这里在服务上配置插件'  ++++++++++++说明: 这里所有的'All Consumer'都可以访问这个'插件'

②  创建一个tony 的Consumer

+++++++++++++++  'Consumer是什么'  +++++++++++++++1)理解:将'Consumer'与'用户'进行'一一映射',即一个consumer'代表'一个'用户或应用'2)对于KONG而言,'Consumer的核心原则'是您可以为其'添加插件',从而'自定义'它的请求行为. 3)或许您会有'一个手机APP应用',并为他的'每个版本'都定义一个consumer;又或者您有'一个或几个'应用,并为这些应用定义'统一个consumer'又或者可以基于'安卓|IOS'4)Consumer是'使用Service'的用户eg: gitlab账号就是一个Consumer是使用gitlab Open API Service5)Consumer的核心原则是您可以'为其添加Plugin插件',从而自定义他的请求行为;6)Consumer下可以'创建多个APP'(eg:您的gitlab账号中您可以创建'多个'gitlab Apps )7)用户是与使用您的API的个人相关联,可用于'追踪、访问管理'等

Consumer Admin API

③  创建一个Basic凭证

备注: 一个'Consumer'下可以添加多个'凭据'

④  客户端测试

(3)Kong的限流配置

说明: 后续'补充'

①②③④⑤⑥⑦⑧⑨⑩

(4)黑白名单配置

①②③④⑤⑥⑦⑧⑨⑩

三   Kong相关参考

kong github官方地址

kong中文翻译文档

知乎上关于kong的集合

kong参考地址

Kong(二)通过案例快速了解使用相关推荐

  1. TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅

    TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅读 ...

  2. Ocelot简易教程(二)之快速开始2

    为什么这篇的标题叫"Ocelot简易教程(二)之快速开始2"呢,因为很多朋友跟我说上一篇" Ocelot简易教程(二)之快速开始1"内容太少了,只是简单介绍Oc ...

  3. 【经典算法实现 44】理解二维FFT快速傅里叶变换 及 IFFT快速傅里叶逆变换(迭代法 和 递归法)

    [经典算法实现 44]理解二维FFT快速傅里叶变换 及 IFFT快速傅里叶逆变换(迭代法 和 递归法) 一.二维FFTFFTFFT快速傅里叶变换 公式推导 二.二维FFTFFTFFT 及 IFFTIF ...

  4. Android 开源热库汇总(二):快速开发库

    Android 开源热库汇总(一):基本库 Android 开源热库汇总(二):快速开发库 1.常用控件 PhotoView 一款ImageView展示框架,支持缩放,响应手势 https://git ...

  5. WebRTC系列<二> 案例与工具

     阅读关于webRTC的其他文章: WebRTC系列<一> 什么是WebRTC? WebRTC系列<二> 案例与工具 ----------------------------- ...

  6. 【Mysql 学习笔记】DQL语句(非常详细,结合多个案例快速入门)

    DQL语句 [----- >数据库文件 点击此链接下载 <-------](https://download.csdn.net/download/weixin_45260385/15452 ...

  7. ML之RF:基于葡萄牙银行机构营销活动数据集(年龄/职业/婚姻/违约等)利用Pipeline框架(两种类型特征并行处理)+RF模型预测(调参+交叉验证评估+模型推理)客户是否购买该银行的产品二分类案例

    ML之RF:基于葡萄牙银行机构营销活动数据集(年龄/职业/婚姻/违约等)利用Pipeline框架(两种类型特征并行处理)+RF模型预测(调参+交叉验证评估+模型推理)客户是否购买该银行的产品二分类案例 ...

  8. Python案例快速入门之二:从页面抓取数据

    本章将直接开始一个从CSDN抓取数据的小例子. 新建如下文件 输入下面代码,从csdn抓取菜单列表 import requests from lxml import etreeurl="ht ...

  9. flink sql udf jar包_Flink 生态:一个案例快速上手 PyFlink

    简介: Flink 从 1.9.0 版本开始增加了对 Python 的支持(PyFlink),在刚刚发布的 Flink 1.10 中,PyFlink 添加了对 Python UDFs 的支持,现在可以 ...

最新文章

  1. maven jetty 插件 允许修改 js
  2. Python高级运维开发2016年7月第14期隆重开课
  3. Missing artifact net.sf.json-lib:json-lib:jar:2.4错误和Eclipse安装Maven插件错误
  4. ios设计登录功能_亲爱的产品设计师,这是iOS 14的新功能
  5. Node.js 和 Python之间如何进行选择?教你一招搞定
  6. 案例详解:MTU不一致导致主机和RAC不断重启
  7. optional用法_还在重复写空指针检查代码?考虑使用 Optional 吧!
  8. LeetCode刷题(14)
  9. 【gulp-sass】本地搭建sass开发环境
  10. 程序员如何转型项目经理?
  11. 针对笔记本电源已接通未充电的提示怎么办
  12. 通过Modbus转EtherNetIP网关连接AB PLC的配置案例
  13. 23万字 前端HTML与CSS学习笔记总结篇(超详细)
  14. photoshop制作gif动画
  15. 从零到一,构建你的持续交付流程(二):好的工程实践是必要的前提
  16. origin画图_Origin作图过程中如何让图看起来更生动
  17. 皮卡丘pikachu
  18. 洞悉旅居新市场,木莲庄酒店集团开拓酒店多元新玩法
  19. 嵌入式学习之QT学习---8 QT网络编程之TCP通信
  20. 黑盒测试用例设计方法-正交试验

热门文章

  1. 操作系统系列笔记(四) - 进程,线程及CPU调度
  2. React Native集成友盟推送
  3. 我经常用的一款切图工具
  4. DingTalk「开发者说」第9期 钉钉数据授权开发实战
  5. GCDAsyncSOcket使用及其SSL/TLS双向认证的实现
  6. Primavera P6 导入计划xer异常
  7. (c语言)求一元二次方程的根
  8. java sql分析器_java sql解析器比较druid sql parser vs jsqlparser vs fdb-sql-parser
  9. Linux实时调度策略(SCHED_RR)和CFS(SCHED_OTHER)之间的区别
  10. 数据挖掘中的数据清洗方法大全