官方网站: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 请求进行监控。

服务注册

  1. curl -i -X POST \
  2. --url http://localhost:8001/services/ \
  3. --data 'name=base64' \
  4. --data 'url=http://httpbin.org/base64'

注册路由

  1. curl -i -X POST --url http://localhost:8001/services/base64/routes --data 'hosts[]=127.0.0.1' --data 'paths[]=/base64'

测试结果

  1. $ curl http://127.0.0.1:8000/base64/MTIzNDU2Nzg5
  2. 123456789

删除服务

  1. $ 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