解压安装包的软件 解压安装包并安装步骤( 六 )


请求报文容量限制-request-size-limiting
该插件用于限制请求报文的数据量大小 , 可以限制单个服务 , 也可以显示所有的API接口服务 。这个实际上是很有用的一个功能 , 可以防止大消息报文调用导致整个API网关内存溢出 。
支持OAuth2.0身份认证-oauth2
Kong网关支持OAuth2.0身份认证 , OAuth2.0 协议根据使用不同的适用场景 , 定义了用于四种授权模式 。即Authorization code(授权码模式) , Implicit grant(隐式模式) , Resource Owner Password Credentials(密码模式) , Client Credentials(客户端模式) 。
在四种方式中经常采用的还是授权码这种标准的 Server 授权模式 , 非常适合 Server 端的 Web 应用 。一旦资源的拥有者授权访问他们的数据之后 , 他们将会被重定向到 Web 应用并在 URL 的查询参数中附带一个授权码(code) 。
在客户端里 ,  code 用于请求访问令牌(access_token) 。并且该令牌交换的过程是两个服务端之前完成的 , 防止其他人甚至是资源拥有者本人得到该令牌 。另外 , 在该授权模式下可以通过 refresh_token 来刷新令牌以延长访问授权时间 , 也是最为复杂的一种方式 。
简单转换能力
对于简单转换能力通过request-transformer 和 response transformer两个插件来完成 。Kong网关提供对输入和输出报文简单转换的能力 , 这部分内容后续再详细展开介绍 。从当前配置来看 , 主要是对消息报文提供了Add, replace,rename,Append等各种简单操作能力 。
Kong网关和其它网关对比
对于开源的Kong网关和其它网关的对比如下 。

解压安装包的软件 解压安装包并安装步骤


从上面对比图也可以看到 , Kong网关在功能 , 性能 , 插件可扩展性各方面都能够更好的满足企业API网关的需求 。因此我们也是基于Konga来进一步定制对Kong网关的管控治理平台 。
解压安装包的软件 解压安装包并安装步骤


在整个定制中增加了基于DB适配的Http Rest API接口的自动发布 , API服务自动化注册 , 服务日志采集和服务日志查询 , 常见映射模板定制 , 接口服务的自动化测试等方面的能力 。
Kong网关的安装
解压安装包的软件 解压安装包并安装步骤


在这里以在Centos7下安装Kong2.2版本说明 。注意centos7安装Postgresql不再列出 , 可以参考网上的文章进行安装 。
# 安装kong-yum源$wget https://bintray.com/kong/kong-rpm/rpm -O bintray-kong-kong-rpm.repo$export major_version=`grep -oE '[0-9]+.[0-9]+' /etc/redhat-release | cut -d "." -f1`$sed -i -e 's/baseurl.*/&/centos/'$major_version''/ bintray-kong-kong-rpm.repo$mv bintray-kong-kong-rpm.repo /etc/yum.repos.d/# 清空缓存 , 重新生成缓存$yum clean all && yum makecache# 查看yum源信息$yum repolist# 更新yum源$yum update -y##############################通过yum安装kong#注意如果出现和openresty不兼容 , 需要先下载老版本的openresty$yum install -y kong# 查看配置文件位置$whereis kong$kong: /etc/kong /usr/local/bin/kong /usr/local/kong##############################安装postgresql数据库(略)##############################数据库创建kong用户$su - postgres$psql -U postgres CREATE USER kong;CREATE DATABASE kong OWNER kong; ALTER USER kong with encrypted password 'kong';#修改kong,postgresql连接配置$cp -r /etc/kong/kong.conf.default /etc/kong/kong.conf$vi /etc/kong/kong.confdatabase = postgrespg_host = 172.28.102.62pg_port = 5432pg_timeout = 5000pg_user = kongpg_password = kongpg_database = kong# 初始化数据库$kong migrations bootstrap [-c /etc/kong/kong.conf]注意执行过程如遇到 failed to retrieve PostgreSQL server_version_num: FATAL: Ident authentication failed for user "kong",请给该用户设定密码 , 并修改postgres的授权方式为MD5 , 操作如下:$alter user kong with password'kong';# 启动kong$kong start [-c /etc/to/kong.conf]#检查 KONG 是否正确运行$curl -i http://localhost:8001/或者$kong health#停止 KONG$ kong stop

推荐阅读