KONG 与 NGINX对应关系
kong是对nginx的一个web封装,所以理解nginx的配置有助于我们理解kong管理API的逻辑。
NGINX简单配置
upstream helloUpstream {
server 127.0.0.1:6001;
server 127.0.0.1:6002;
}
server {
listen 80;
location /hello {
proxy_pass http://helloUpstream;
}
}
KONG配置
# 配置 upstream
curl -X POST http://localhost:8001/upstreams
--data "name=helloUpstream"
# 配置 target
curl -X POST http://localhost:8001/upstreams/hello/targets
--data "target=127.0.0.1:6001"
curl -X POST http://localhost:8001/upstreams/hello/targets
--data "target=127.0.0.1:6002"
# 配置 service
curl -X POST http://localhost:8001/services
--data "name=hello" --data "host=helloUpstream"
# 配置 route
curl -X POST http://localhost:8001/routes
--data "paths[]=/hello"
--data "service.id=7bed6af7-c6d0-4228-a2b0-e0103d17aa0a"
curl -X POST http://localhost:8001/routes
--data "hosts[]=a.com,b.com,*.abc.com"
--data "service.id=7bed6af7-c6d0-4228-a2b0-e0103d17aa0a"
这一切配置都是通过管理API 来动态实现的,无需我们再手动的 reload nginx.conf 。
核心概念介绍
upstream
upstream是一个主机组,对该组内的主机负载均衡。
target
target是一个服务的单个实例,可以动态的向upstream添加删除target
service
service表示对外输出的服务抽象,服务的主要属性是URL
route
路由定义规则以匹配客户端的请求。每个Route与一个Service相关联,一个服务可能有多个路由关联。
consumer
Consumer 对象表示服务的使用者或者用户。
plugin
插件表示将在HTTP请求/响应生命周期期间执行的插件配置。