一、背景
API Gateway的开源项目虽然很多,但也是良莠不齐,Kong在其中算是一个表现不错的项目,但是由于Kong使用了关系型数据库,带来了一些额外的运维成本,另一方面,a也不适合作为网关引擎集成到企业的解决方案里来。
2019/03/27,Kong 1.1.0版本中引入了一个新特性 DB-less Mode
,这样,我们在使用Kong的过程中,就可以只使用配置文件,而无需再维护一个关系型数据库。
终于,Kong可以作为我们API治理平台的网关引擎了~
二、安装Kong
CentOS系统可以使用下面的命令来完成安装
sudo yum update -y
sudo yum install -y wget
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
sudo mv bintray-kong-kong-rpm.repo /etc/yum.repos.d/
sudo yum update -y
sudo yum install -y kong
三 启动Kong
- 创建配置文件
cp /etc/kong/kong.conf.default /etc/kong/kong.conf
- 修改配置文件
/etc/kong/kong.conf
sed -i "/^#database/i\database = off" /etc/kong/kong.conf
- 启动kong
kong start
- 查看默认配置
[root@labs ~]# curl http://127.0.0.1:8001/config
{"config":"_format_version: '1.1'\n"}
可以发现,默认情况下是没有配置任何apis
- 使用yaml文件创建接口
cat > apis.yml <<EOF
_format_version: "1.1"
services:
- name: httpbin-service
url: http://httpbin.org/
# Entities can store tags as metadata
tags:
- httpbin
# Entities that have a foreign-key relationship can be nested:
routes:
- name: httpbin-route
paths:
- /
plugins:
- name: correlation-id
config:
header_name: Kong-Request-ID
generator: tracker
echo_downstream: true
EOF
- 检测配置文件是否合法
kong config parse apis.yml
- 上传配置文件
curl http://127.0.0.1:8001/config -F "config=@apis.yml"
- 测试接口
curl -v http://127.0.0.1:8000/ip

上图中可以得到几个信息:
- Kong运行成功:返回了header:
X-Kong-Upstream-Latency
和X-Kong-Proxy-Latency
- 接口转发成功,service和router都配置正确
- 插件配置成功,返回了header:
Kong-Request-ID
网友评论