Kong
Kong的简介
- Kong的官方网址:konghq.com/
- Kong定义:
Kong是一款基于OpenResty(Nginx + Lua模块)编写的高可用、易扩展的,由Mashape公司开源的API Gateway项目。Kong是基于Nginx和Apache Cassandra或PostgreSQL构建的,能提供易于使用的RESTful API来操作和配置API管理系统,所以它可以水平扩展多个Kong服务器,通过前置的负载均衡配置把请求均匀地分发到各个Server,来应对大批量的网络请求。
- Kong优势:
- 利用工作流自动化和现代 GitOps 实践
- 分散应用程序/服务并过渡到微服务
- 创建蓬勃发展的 API 开发人员生态系统
- 主动识别与 API 相关的异常和威胁
- 保护和管理 API/服务,并提高整个组织的 API 可见性
- 插件市场丰富,可以降低开发成本
- 可扩展性,可以编写lua脚本来定制自己的参数验证权限验证等操作
- 强性能,基于OpenResty
- 便捷性能扩容
- 负载均衡健康检查
- Kong的组件
- Kong Server :基于nginx的服务器,用来接收API请求。
- Apache Cassandra/PostgreSQL :用来存储操作数据,推荐使用PostgreSQL 。
- Kong dashboard:官方推荐UI管理工具,当然,也可以使用 restfull 方式 管理admin api。
Kong安装
1、docker安装
docker network create kong-net
2、使用postgres数据库
docker run -d --name kong-database \
--network=kong-net \
-p 5432:5432 \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_DB=kong" \
postgres:9.6
3、启动Kong-service
docker run -d --name kong \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
-e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \
-e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \
-e "KONG_PROXY_ERROR_LOG=/dev/stderr" \
-e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \
-e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \
-p 8000:8000 \
-p 8443:8443 \
-p 8001:8001 \
-p 8444:8444 \
kong:1.0.3
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d82c2b7729ae kong:1.0.3 "/docker-entrypoin..." 3 seconds ago Up 2 seconds 0.0.0.0:8000-8001->8000-8001/tcp, 0.0.0.0:8443-8444->8443-8444/tcp kong
9b7f5a9c808f postgres:9.6 "docker-entrypoint..." 26 seconds ago Up 25 seconds 0.0.0.0:5432->5432/tcp kong-database
4、调用地址,输出
curl -i http: