kong入门实战

 

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

安装kong-database

docker run -d --name kong-database \-p 5432:5432 \-e "POSTGRES_USER=kong" \-e "POSTGRES_DB=kong" \postgres:9.4

安装kong

docker run -d --name kong \--link kong-database:kong-database \-e "KONG_DATABASE=postgres" \-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \-e "KONG_PG_HOST=kong-database" \-p 8000:8000 \-p 8443:8443 \-p 8001:8001 \-p 7946:7946 \-p 7946:7946/udp \kong:latest

8000端口 http 监听客户端传入的HTTP流量
8443端口 https 监听客户端传入的HTTPS流量
8001端口 admin api监听端口

安装kong-dashboard

docker run -d -p 8080:8080 --name kong-dashboard pgbi/kong-dashboard:v2

kong-dashboard管控台访问地址http://172.16.222.115:8080

ffddf318-128f-49ab-9210-23aa5515071c

cbdf7212-682a-453f-89b1-67dd102f908f

注册api服务

有如下两个api服务

http://172.16.222.115:8129/info

http://172.16.222.115:8129/users

向kong中添加api

curl -i -X POST --url http://172.16.222.115:8001/apis/ --data 'name=info' --data 'uris=/info,/getinfo' --data 'methods=GET' --data 'upstream_url=http://172.16.222.115:8129/info' --data 'strip_uri=true'
curl -i -X POST --url http://172.16.222.115:8001/apis/ --data 'name=users' --data 'uris=/users,/getusers' --data 'methods=GET' --data 'upstream_url=http://172.16.222.115:8129/users' --data 'strip_uri=true'

注意:

name为api服务名不能重复

hosts、uris、methods至少应指定一个,uris指定该api在kong上访问时的uri路径,当有多个时使用逗号分割

upstream_url为真正的api服务地址

strip_uri表示通过其中一个uris前缀匹配API时,是否从upstream_url中删除匹配到的uris前缀。默认值:true

kong-dashboard管控台api列表

2a3b61dc-4bde-4486-835d-e77c37e802a3

访问注册在kong中的api服务

curl -i -X GET --url http://172.16.222.115:8000/info
curl -i -X GET --url http://172.16.222.115:8000/getinfo
curl -i -X GET --url http://172.16.222.115:8000/users
curl -i -X GET --url http://172.16.222.115:8000/getusers

从kong中删除api

curl -i -X DELETE http://172.16.222.115:8001/apis/info
curl -i -X DELETE http://172.16.222.115:8001/apis/users

查看apis列表

curl -i -X GET http://172.16.222.115:8001/apis

或浏览器访问http://172.16.222.115:8001/apis

插件管理

添加插件

/apis/{name or id}/plugins/

  • 安装file-log插件
curl -X POST http://172.16.222.115:8001/apis/{api}/plugins \--data "name=file-log" \--data "config.path=/tmp/file.log"
  • 安装rate-limiting
curl -X POST http://172.16.222.115:8001/apis/{api}/plugins \--data "name=rate-limiting" \--data "config.second=5" \--data "config.hour=10000"
  • 安装ip-restriction插件
curl -X POST http://172.16.222.115:8001/apis/{api}/plugins \--data "name=ip-restriction" \--data "config.whitelist=172.16.222.115"--data "config.blacklist=143.1.0.0/24"
  • 安装key-auth插件
curl -X POST http://172.16.222.115:8001/apis/{api}/plugins \--data "name=key-auth" \--data "config.hide_credentials=true" --data "config.key_names=apikey"

创建Consumer

curl -X POST http://172.16.222.115:8001/consumers/ \--data "username=admin" \--data "custom_id=qtonecloud-admin"curl -X POST http://172.16.222.115:8001/consumers/ \--data "username=guest" \--data "custom_id=qtonecloud-guest"    

创建API Key

curl -X POST http://172.16.222.115:8001/consumers/{consumer}/key-auth -d ''   

使用API Key调用服务

curl http://172.16.222.115:8000/getusers?apikey=ad097442ea4e4e0c911da52ad5c4cea2
  • 安装basic-auth插件
curl -X POST http://172.16.222.115:8001/apis/{api}/plugins \--data "name=basic-auth" \--data "config.hide_credentials=true"

创建Consumer

curl -d "username=qtonecloud&custom_id=qtonecloud" http://172.16.222.115:8001/consumers/

创建Credential

curl -X POST http://172.16.222.115:8001/consumers/{consumer}/basic-auth \--data "username=admin" \--data "password=admin"

使用Credential调用api服务

curl http://172.16.222.115:8000/getusers \-H 'Authorization: Basic YWRtaW46YWRtaW4='

其中YWRtaW46YWRtaW4=为上一步中usernamepassword的Base64编码后的值即admin:admminBase64编码后的值

  • 安装ACL插件

ACL依赖authentication plugin

安装acl,添加组白名单、黑名单

curl -X POST http://172.16.222.115:8001/apis/{api}/plugins \--data "name=acl" \--data "config.whitelist=user, admin"--data "config.blacklist=guest"

关联Consumers

curl -X POST http://172.16.222.115:8001/consumers/{consumer}/acls \--data "group=guest"

启用任何一种Authentication插件,如之前安装的basic-authkey-auth插件

使用对应的Authentication插件认证方式调用api

查看插件列表

curl -i -X GET http://172.16.222.115:8001/plugins

或浏览器访问http://172.16.222.115:8001/plugins

kong-dashboard管控台插件列表

a8fded29-810d-4f66-96c8-23ef74ba5274

rate-limiting插件限流

9dd6daa2-0d6f-4d62-915f-caa541d90154

ip-restriction插件IP黑名单

3fbe93eb-7022-4ab3-b535-4099f3b7d389

key-auth插件

8c25a288-0943-4ba3-8a7c-379b62d05323

basic-auth

acl

13feae52-3b34-49b1-a84c-d593c5340c49

同时启用basic-auth和acl

参考资料

https://getkong.org/install/docker/

https://getkong.org/plugins/

https://github.com/PGBI/kong-dashboard

 

原文地址: https://github.com/ameizi/DevArticles/issues/165

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/449493.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PAT A1048

示例思想中提到了二分以及two point概念,这个需要后面进行总结;这个示例也给出了一个新的思路。对于两个数字和m,查找两个加数,可以进行i和m-i的枚举,通过遍历数组查看两个加数是否存在,来进行遍历&#xf…

CentOS 7 防火墙操作

导语 今天说下防火墙的操作。CentOS 6 的防火墙是 iptables,CentOS 7 默认的是 firewall,以前的操作不再适用。 查看、开启 服务器刚刚重启完毕,先来看下防火墙的状态,输入 systemctl status firewalld 进行查看 这里是关闭的&…

[python作业AI毕业设计博客]比Selenium IDE更好用的录制工具: Katalon Recorder

Selenium IDE(集成开发环境 Integrated Development Environment)是用于构建测试脚本的原型工具。 它是一个Firefox插件,提供了易于使用的界面,用于开发自动化测试。 但是最新的Selenium IDE总是弹出一系列如下的对话框,不能直接录制&#xf…

价值投资/指标选股(akshare)

利用akshare的数据源,可以获取所有的股票数据以及公开的财务数据,可以进行条件筛选,获取满足条件的股票。 这套模板可以用于价值投资,指标选股。选股周期为日线级别。然后结果可以邮箱发送。 import time import akshare as ak #…

有前途的人工智能大数据分析相关职业:Python数据科学入门之路

2019独角兽企业重金招聘Python工程师标准>>> 为什么学习Python数据科学? Python是数据科学职业所需的宝贵技能之一。Python是数据科学的首选编程语言。 2016年,它超越了R on Kaggle,这是数据科学竞赛的首选平台。2017年&#xff0…

STL 容器简介:C++ 容器:顺序性容器、关联式容器和容器适配器

STL标准容器类简介 标准容器类说明顺序性容器vector从后面快速的插入与删除,直接访问任何元素deque从前面或后面快速的插入与删除,直接访问任何元素list双链表,从任何地方快速插入与删除关联容器set快速查找,不允许重复值multise…

用友云开发者中心助你上云系列之在线调试

现在,大家开始越来越多的谈论到高可用架构的互联网应用。什么是高可用?高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。当我们谈论…

解决jboss.resteasy.spi.UnhandledException: Response is committed, can‘t handle exception

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 报错如题,如图: 我的情况是:项目作压测,这个接口请求量不大时是OK的 ,当达到…

linux下如何做ghost,又简单又方便,很实用的方法!!!

Linux 做ghost 使用指南。 转载时请注明本博客地址。 1. 使用unetbootin-windows-585.exe 软件做 ubuntu 的liveusb ,一定是做liveusb,不是liveCD,如果你做的是liveCD,要把做好的文件拷出来,否则,重…

解决org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException: Encountered a duplicated sql ...

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 报错如题: org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException: Encountered a duplicated sql alias [id]…

Spring WebFlux 响应式编程学习笔记(一)

各位Javaer们,大家都在用SpringMVC吧?当我们不亦乐乎的用着SpringMVC框架的时候,Spring5.x又悄(da)无(zhang)声(qi)息(gu)的推出了Spring WebFlux。web? 不是已经有SpringMVC这么好用的东西了么,为啥又冒出个WebFlux?…

Django Rest Framework -解析器

基本代码结构 urls.py rom django.conf.urls import url, include from web.views.s5_parser import TestViewurlpatterns [url(rtest/, TestView.as_view(), nametest), ]views.py from rest_framework.views import APIView from rest_framework.response import Response f…

U盘版便携式Linux制作, casper-rw 解析

一直都在想,不管用谁的电脑,我都可以得到一个完全一致的工作环境,上面有我喜爱的软件,有我保存的重要资料,甚至浏览器的各种偏好都得一模一样!现在的云计算技术可以部分解决这个问题,但是远远不…

canvas反向裁剪技巧

我们都知道在canvas 可以通过clip来实现剪裁功能,其步骤一般是先设置要裁剪的区域(路径),然后通过ctx.clip()的实现裁剪,裁剪之后,后续的绘制只能在裁剪的区域显示效果,比如如下一段代码&#x…

set 和select 的区别

简单赋值是没有区别的 转载于:https://www.cnblogs.com/bingyizhihun/p/10597908.html

马上有钱:揭密25种成为有钱人的方法(图)

1、做你真正感兴趣的事—你会花很多时间在上面,因此你一定要感兴趣才行,如果不是这样的话,你不愿意把时间花在上面,就得不到成功。 2、自己当老板。为别人打工,你绝不会变成巨富,老板一心一意地缩减开支&a…

无人承运平台系统流程图

转载于:https://www.cnblogs.com/procedureMonkey/p/10598052.html

年买笔记本的8个小技巧 最适合自己才最好(组图)

显然,智能手机和平板在一定程度上可以替代传统电脑,让我们可以随时随地上网、使用各种应用。不过,传统电脑也拥有它的不可替代性,比如移动办公、视频编辑、玩游戏,笔记本电脑可能是个更好的选择。 作为一种成熟的电脑…

基本变量和引用变量

基本数据类型作比较,值相等则相等,值不相等则不相等(忽略数据类型) 引用类型作比较,引用地址相等则相等,否则都是不等的。 基本数据类型,和引用数据类型作比较,是比较值是否相等&…

[云框架]KONG API Gateway v1.5 -框架说明、快速部署、插件开发

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 当前版本采用KONGv0.12.3 当我们决定对应用进行微服务改造时,应用客户端如何与微服务交互的问题也随之而来,毕竟…