API网关Kong部署和使用文档
KONG安装使用说明
系统版本:ubuntu14 1、下载安装包 $ wget https://github.com/Mashape/kong/releases/download/0.8.3/kong-0.8.3.trusty_all.deb
2、安装依赖 $ sudo apt-get update $ sudo apt-get install openjdk-7-jdk $ sudo apt-get install netcat openssl libpcre3 dnsmasq procps $ sudo dpkg -i kong-0.8.3.*.deb
3、安装数据库 安装CASSANDRA 2.2.X 下载地址: $ wget http://mirrors.hust.edu.cn/apache/cassandra/2.1.15/apache-cassandra-2.1.15-bin.tar.gz
解压: $ tar zxvf apache-cassandra-2.1.15-bin.tar.gz
移动: $ sudo mv apache-cassandra-2.1.15-bin /usr/local/cassandra-2.1.15
执行: $ /usr/local/cassandra-2.1.15/bin/cassandra
4、修改配置 $ sudo vi /etc/kong/kong.yml 设置 cluster_listen: "127.0.0.1:7946"
5、启动kong $ kong start
5、运行kong $ curl 127.0.0.1:8001
6、添加API $ curl -i -X POST \
--url http://localhost:8001/apis/ \
--data 'name=simlogin' \
--data 'upstream_url=http://uc.ttq.dev/index.php/ttk/auth/simlogin' \
--data 'request_path=/simlogin' \
--data 'request_host=uc.ttq.dev' url:kong固定地址
request_path:请求路径
upstream_url:真实路径
7、访问API http://172.168.6.211:8000/simlogins?login_account=18022222223&channel=ttk&type=pc 172.168.6.211:8000(Kong服务器地址)
simlogins (request_path)
8、Key验证 配置key $ curl -X POST http://kong:8001/apis/{api}/plugins \
--data "name=key-auth" 例子:
$ curl -X POST http://localhost:8001/apis/simlogin/plugins --data 'name=key-auth' 返回值:
{
"api_id": "95ec4e23-0d19-4c38-a974-8f5643876eb0",
"id": "5e711b42-23f8-4f79-a7b1-91b0bd779c69",
"created_at": 1472110325000,
"enabled": true,
"name": "key-auth",
"config": {
"key_names": ["apikey"],
"hide_credentials": false
}
}
创建调用账户 $ curl -X POST http://kong:8001/consumers/ \
--data "username=<USERNAME>" \
--data "custom_id=<CUSTOM_ID>" 例子:
$ curl -X POST http://localhost:8001/consumers/ \
--data "username=login_user"
--data "custom_id=000002" 返回值:
{
"custom_id": "000002",
"username": "login_user",
"created_at": 1472110450000,
"id": "9267ff99-3732-4150-a727-ced409699e27"
}
设置key $ curl -X POST http://kong:8001/consumers/{consumer}/key-auth 例子:
$ curl -X POST http://localhost:8001/consumers/9267ff99-3732-4150-a727-ced409699e27/key-auth \
--data "key=ksdpemc514d" 返回值:
{
"key": "ksdpemc514d",
"consumer_id": "9267ff99-3732-4150-a727-ced409699e27",
"created_at": 1472110618000,
"id": "005a8a0b-61ce-4085-8300-4c9790c9599c"
}
http调用 http://kong:8000/simlogins?apikey=ksdpemc514d
//参数和实际接口参数一样
8、IP限定 $ curl -X POST http://kong:8001/apis/{api}/plugins \
--data "name=ip-restriction" \
--data "config.whitelist=54.13.21.1, 143.1.0.0/24" 例子:
$ curl -X POST http://localhost:8001/apis/login/plugins \
--data "name=ip-restriction" \
--data "config.whitelist=172.168.6.210" 返回值:
{
"api_id": "f7eb3785-2e6f-477c-bac6-4b078a7a7cf2",
"id": "ec1666af-66f5-45f4-8059-619b93d1299a",
"created_at": 1472191585000,
"enabled": true,
"name": "ip-restriction",
"config": {
"whitelist": ["172.168.6.210"]
}
}
9、删除扩展 $ curl -i -X DELETE kong:8001/plugins/{pluginsid} 例子:
$ curl -i -X DELETE localhost:8001/plugins/f1ef7f24-a5b3-40c7-8c23-75860bdf9fb3 返回值:
HTTP/1.1 204 No Content
Date: Fri, 26 Aug 2016 06:04:44 GMT
Connection: keep-alive
Access-Control-Allow-Origin: *
Server: kong/0.8.3
10、安装ui 注:比较麻烦,而且也不稳定
安装mongoDB $ sudo apt-get install mongodb mongodb-clients mongodb-dev mongodb-server
安装nodejs $ sudo weget https://nodejs.org/dist/v4.5.0/node-v4.5.0.tar.gz //nodejs $ sudo tar zxvf node-v4.5.0.tar.gz $ sudo ./configure $ sudo make && make install
安装npm $ sudo weget https://npm.taobao.org/mirrors/npm/v3.9.6.tar.gz //npm $ sudo tar zxvf v3.9.6.tar.gz $ sudo ./configure $ sudo make && make install
安装bower 1、$ sudo npm i -g bower 2、$ git clone https://github.com/lestoni/dashy.git 3、$ sudo bower install 4、修改bower.json "validator": "https://github.com/yairEO/validator.git#^1.0.6 5、配置config/index.js 6、$ npm start 7、http://localhost:7500
API网关Kong部署和使用文档的更多相关文章
- .NET Core WEB API使用Swagger生成在线接口文档
1项目引用Swashbuckle.AspNetCore程序集和Microsoft.Extensions.PlatformAbstractions程序集 右击项目打开"管理NuGet程序包.. ...
- 如何编译部署 UIKit 离线文档?
如何编译部署 UIKit 离线文档? Whis is UIKit? Note:部署在 Windows 系统会出现路径错误情况,这里采用在 Debian 系统上进行编译和部署. 1. 安装一些前置工具 ...
- .Net Api 之如何使用Elasticsearch存储文档
.Net Api 之如何使用Elasticsearch存储文档 什么是Elasticsearch? Elasticsearch 是一个分布式.高扩展.高实时的搜索与数据分析引擎.它能很方便的使大量数据 ...
- API网关——Kong实践分享
概述 01 什么是Kong Kong是一个在Nginx中运行的Lua应用程序,可以通过lua-nginx模块实现,Kong不是用这个模块编译Nginx,而是与OpenRestry一起发布,OpenRe ...
- SIA-GateWay之API网关安装部署指南
SIA-GATEWAY是基于SpringCloud微服务生态体系下开发的一个分布式微服务网关系统.具备简单易用.可视化.高可扩展.高可用性等特征,提供云原生.完整及成熟的接入服务解决方案.本文介绍AP ...
- API网关--Kong的实践
1. 什么是Kong 目前互联网后台架构一般是采用微服务,或者类似微服务的形式,应用的请求通常需要访问多个后台系统.如果让每一个后台系统都实现鉴权.限流.负载均衡.审计等基础功能是不合适的,通用的做法 ...
- Api网关Kong集成Consul做服务发现及在Asp.Net Core中的使用
写在前面 Api网关我们之前是用 .netcore写的 Ocelot的,使用后并没有完全达到我们的预期,花了些时间了解后觉得kong可能是个更合适的选择. 简单说下kong对比ocelot打动我的 ...
- 使用ASP.NET Web API Help Pages 创建在线接口文档
操作步骤 1.新建Web API项目 2.在项目Areas文件夹下找到以下文件,取消注释图中代码. 3.右键解决方案,属性,如图设置. 4.运行程序,点击右上角API 接口列表: 详情-无参数: 详情 ...
- ASP.NET Web API 使用Swagger生成在线帮助测试文档
Swagger-UI简单而一目了然.它能够纯碎的基于html+javascript实现,只要稍微整合一下便能成为方便的API在线测试工具.项目的设计架构中一直提倡使用TDD(测试驱动)原则来开发,sw ...
随机推荐
- Python协程中使用上下文
在Python 3.7中,asyncio 协程加入了对上下文的支持.使用上下文就可以在一些场景下隐式地传递变量,比如数据库连接session等,而不需要在所有方法调用显示地传递这些变量.使用得当的话, ...
- python学习之字符串常用方法和格式化字符串
Python中的字符串同样适用标准的序列操作(索引,分片,乘法,成员判断,求长度,取最小值和最大值),但因为字符串是不可变的,因此字符串不支持分片赋值. s='http://www.baidu.com ...
- Python3 适合初学者学习的银行账户登录系统
一.所用知识点: 1. for循环与if判断的结合 2. %s占位符的使用 3. 辅助标志的使用(标志位) 4. break的使用 二.代码示例: ''' 银行登录系统 ''' uname = &qu ...
- Xshell 清除历史记录方法
使用电脑久了,就会清理电脑,将一些历史记录清除,使得电脑可以运行的更快,Xshell也是同样的道理.本集小编就教大家如何清除xshell的历史记录. 如何清除历史记录: 1.打开xshell,然后点击 ...
- 《UML大战需求分析》阅读笔记1
通过阅读本书的序和第一章,让我对于UML的理解更加深刻了,并且懂了怎样把你UML学的更好. 作者先让我们明白什么是UML,大概知道了UML各个图的形态和各种用途,然后再详细的介绍各个图怎样使用. UM ...
- Java面试题集合
1.Java的HashMap是如何工作的? HashMap是一个针对数据结构的键值,每个键都会有相应的值,关键是识别这样的值. HashMap 基于 hashing 原理,我们通过 put ()和 g ...
- 获取已安装app的bundle id
备注:以下是私有api 苹果审核会被拒绝. 导入头文件 #import <objc/runtime.h> /// 获取其他APP信息(iOS11无效) + (NSArray *)getOt ...
- 如何理解Java中参数传递只能传值?
以前学习C#的时候,是完全在工作岗位上学习,一些底层较为深入的道理都不是很清楚.如今学习了Java,对于Java参数传递只能传值,不能传引用(指针)感到很困惑,在C#中不是常常说把某个引用传递到函数中 ...
- 一些可能有点用处的C#开发经验
前言: 下个月就要去进行Java开发了,以后C#碰的就少了(可惜去年买了三本C#的书,几乎还是全新的……),平时一些经验都记在OneNote里面,现在收集整理出来,因为只能利用交接工作的打酱油的时间, ...
- 【题解搬运】PAT_L1-009 N个数求和
从我原来的博客上搬运.原先blog作废. (伪)水题+1,旨在继续摸清这个blog(囧 题目 就是求N个数字的和.麻烦的是,这些数字是以有理数"分子/分母"的形式给出的,你输出的和 ...