官方网站:https://konghq.com/
GitHub:https://github.com/kong/kong
官方开发文档:https://docs.konghq.com/
专业术语
- Route:请求的转发规则,按照 Hostname 和 PATH,将请求转发给 Service;
- Services:多个 Upstream 的集合,是 Route 的转发目标;
- Consumer:API 的用户,记录用户信息;
- Plugin:插件,可以是全局的,也可以绑定到 Service、Router 或者 Consumer;
- Certificate:https 配置的证书;
- Sni:域名与 Certificate 的绑定,指定了一个域名对应的 https 证书;
- Upstream:上游对象用来表示虚拟主机名,拥有多个服务(目标)时,会对请求进行负载均衡;
- Target:最终处理请求的 Backend 服务。
默认监听端口
- 8000:此端口是 Kong 用来监听来自客户端传入的 HTTP 请求,并将此请求转发到上有服务器;(Kong 根据配置的规则转发到真实的后台服务地址)
- 8443:此端口是 Kong 用来监听来自客户端传入的HTTPS请求的。它跟8000端口的功能类似,转发 HTTPS 请求的。可以通过修改配置文件来禁止它;
- 8001:Admin API,通过此端口,管理者可以对 Kong 的监听服务进行配置,插件设置、API 的增删改查、以及负载均衡等一系列的配置都是通过 8001 端口进行管理;
- 8444:通过此端口,管理者可以对 HTTPS 请求进行监控。
服务注册
curl -i -X POST \
--url http://localhost:8001/services/ \
--data 'name=base64' \
--data 'url=http://httpbin.org/base64'
注册路由
curl -i -X POST --url http://localhost:8001/services/base64/routes --data 'hosts[]=127.0.0.1' --data 'paths[]=/base64'
测试结果
$ curl http://127.0.0.1:8000/base64/MTIzNDU2Nzg5
123456789
删除服务
$ curl -X DELETE "http://localhost:8001/services/kong"
参考
https://juejin.im/post/5ce28cb06fb9a07f0a2db257
https://juejin.im/post/5e547f01e51d4526c80e9d68
https://www.jianshu.com/p/a68e45bcadb6
http://blueskykong.com/2019/08/26/kong2/
https://www.cnblogs.com/wucy/p/14630008.html