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…

linux 32位平台,文件大小受限于2G的解决方法

公司的asterisk系统已经发生了两次crash,检查日志,都是在日志文件写满到2G后自动执行转储时,日志还在写继续写入而导致的。google以后,发现了下面这边文章,赞!解决了文件大小限于2G的问题,转帖到…

【noip模拟赛4】Matrix67的派对 暴力dfs

【noip模拟赛4】Matrix67的派对描述 Matrix67发现身高接近的人似乎更合得来。Matrix67举办的派对共有N(1<N<10)个人参加&#xff0c;Matrix67需要把他们安排在圆桌上。Matrix67的安排原则是&#xff0c;圆桌上任意两个相邻人的身高之差不能超过K。请告诉Matrix67他共有多…

Backtrader多周期回测

获取数据 result pd.read_csv(11.csv) df pd.DataFrame(dataresult) df df.set_index([datetime]) df 策略 class MultiTFStrategy(bt.Strategy):params ((period, 20),)# states definationEmpty, M15Hold, H1Hold, D1Hold range(4)States [Empty, M15Hold, H1Hold, D…

CentOS 7 防火墙操作

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

Centos安装nmon软件 ( 测试 )

安装 mkdir /usr/local/nmon cd /usr/local/nmon wget http://sourceforge.net/projects/nmon/files/nmon_linux_14i.tar.gz tar zxvf nmon_linux_14i.tar.gz chmod 777 nmon_x86_64_sles11 12345 启动 ./nmon_x86_64_sles11 1 说明&#xff1a; 按C显示CPU信息&#xff0c;再按…

阿里云安装Quantaxis

参考博客&#xff1a;https://github.com/QUANTAXIS/QUANTAXIS/issues/1395 之后进入阿里云中的Ubuntu界面 输入&#xff1a; sudo yum install apt-transport-https ca-certificates curl software-properties-common Sudo yum install curl service network restartcd qua…

sorted_一个函数秒杀冒泡排序算法和选择排序

sorted一招杀a [3,9,12,4,5,7,8,110]print(sorted(a,reverseTrue))# true为降序print(sorted(a,reverseFalse))# revers false为升序print(sorted(a))#默认是false升序排列Bubble_sort下面看看坑死人无数的冒泡排序内循环和外循环每次循环依次比较大小并来回挪坑,直到把目标值…

转载给ffmpeg入门级:我的第一个调用FFmpeg库的程序出炉

好消息&#xff0c;写了第一个使用了ffmpeg的库的小程序。看起来就是这么简单的一个消息&#xff0c;但是you have no idea how much work that I did before it works...废话少说&#xff0c;总结记录之。。。一、安装好Linux的虚拟机。我用的是FEDORA-16&#xff0c;当然别的…

runC爆严重安全漏洞,主机可被攻击!使用容器的快打补丁

容器的安全性一直是容器技术的一个短板。关于容器最大的安全隐患是攻击者可以使用恶意程序感染容器&#xff0c;更严重时可以攻击主机系统。 2月11日&#xff0c;安全研究员Adam Iwaniuk和BorysPopławski发现了容器运行时runC的一个安全漏洞&#xff0c;这个漏洞可以让上述情况…

pandas操作sql数据库

导包 import pymssql from sqlalchemy import create_engine import pandas as pd 连接数据库 #读数据 conn pymssql.connect(server.,user sa,password test,databasepos) sql select * from stock_data df0 pd.read_sql(sql,conn) 写入数据 df pd.read_csv(option_…

MongoDB Mobile Sync for iOS推出Beta版本

2019年2月11日&#xff0c;MongoDB官方博客发文称MongoDB Mobile Sync for iOS的Beta版本即将推出。MongoDB Mobile支持使用单一查询语言进行本地和远程数据访问&#xff0c;包含两个核心部分&#xff1a; MongoDB数据库的移动优化版本&#xff0c;运行在本地设备上&#xff0c…

gdb好文章:GDB十分钟教程

&#xff08;GUI调试器&#xff1a;insight和ddd&#xff09; list(l) &#xff1a;其作用就是列出程序的源代码&#xff0c;默认每次显示10行。 list 行号&#xff1a;将显示当前文件以“行号”为中心的前后10行代码&#xff0c;如&#xff1a;list 12 list 行号1,行号2: 将…

机器学习预测+akshare

import pandas as pd import akshare as ak import numpy as np import talib from datetime import datetime, timedelta import time 获取股票数据 from_date 2010-01-01 from_date datetime.strptime(from_date,"%Y-%m-%d") day_nums 1 current_dt time.st…

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

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

CentOS 7 : Docker私有仓库搭建和使用

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 系统环境&#xff1a; CentOS 7.2 192.168.0.179&#xff1a;docker仓库 192.168.0.60&#xff1a;客户端 安装并启动docker yum -y…

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

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

gdb常用命令

[rootredhat home]#gdb 调试文件&#xff1a;启动gdb (gdb) l &#xff1a;&#xff08;字母l&#xff09;从第一行开始列出源码 (gdb) break n :在第n行处设置断点 (gdb) break func&#xff1a;在函数func()的入口处设置断点 (gdb) info break&#xff1a; 查看断点信息 (gdb…

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

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

遍历Map key-value的两种方法、遍历Set方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 第一种遍历方法 : 先获取Map中的所有key值&#xff0c;然后根据key&#xff0c;依次从Map中去数据 Map<String,String> test…