API网关Kong 简介以及安装教程

Kong

简介

Kong基于OpenResty,是一个云原生、快速、可扩展、分布式的流量网关(门户网关)

特性

  • 提供了多样化的认证层来保护API
  • 可对出入流量进行管控
  • 提供了可视化的流程检查、监控分析API
  • 能够及时得转换请求和响应
  • 提供log解决方案
  • 可通过API Serverless函数

安装

Kong不支持windows,所以本地如果想安装只能用虚拟机,支持的安装方式https://konghq.com/install/
简单提一下,这里我是用VirtualBox+Vagrant虚拟化技术,有想自己动手的小伙伴可以参考: windows下安装VirtualBox和Vagrant
有了虚拟机后就要安装,本人推荐用docker容器化搭建,docker安装可以参考:Centos下安装Docker以及配置阿里云镜像加速器

有了这些前提后,再进行kong安装

  • 这里我们就参考docker images安装

    • 安装并启动PostgreSQL,需注意的是这里用高版本的可能 Kong 运行报 Error: don‘t know how to auth: 10

      	#拉取postgreSQL 9 版本的数据库
      	docker pull postgres:9; 
      	#启动postgreSQL数据库
      	docker run -d --name kong-database \
              -p 5432:5432 \
              -e "POSTGRES_USER=kong" \
              -e "POSTGRES_DB=kong" \
              -e "POSTGRES_PASSWORD=kong" \
              postgres:9     
          #进入postgreSQL容器
          docker exec -it kong-database /bin/bash
          #进入postgreSQL容器中的psql命令行工具
          psql -U kong -W kong;
          #查看当前数据库容器中的用户
          \du;
          #创建一个kong用户和数据库
          create user kong with password 'kong';
          create database kong owner kong;
          #创建一个konga用户和数据库
          create user konga with password 'konga';
          create database konga owner konga;
      	
      
    • 安装并启动kong

      #拉取docker镜像中最新的kong版本
      docker pull kong;
      #删除正在运行的kong镜像
      docker run --rm \
          --link kong-database:kong-database \
          -e "KONG_DATABASE=postgres" \
          -e "KONG_PG_HOST=kong-database" \
          -e "KONG_PG_USER=kong" \
          -e "KONG_PG_PASSWORD=kong" \
          -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
          kong kong migrations bootstrap
      #启动kong,并设置kong的数据库    
      docker run -d --name kong \
          --link kong-database:kong-database \
          -e "KONG_DATABASE=postgres" \
          -e "KONG_PG_HOST=kong-database" \
          -e "KONG_PG_PASSWORD=kong" \
          -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
      

Kong Dashboard

Kong 图形可视化处理界面工具:

  • Konga
  • Kong-dashboard

安装Konga

  • 这里我们就参考docker images安装

    • 安装并启动Konga

      #拉取最新的konga版本
      docker pull pantsel/konga:latest
      #删除运行的konga
      docker run --rm pantsel/konga:latest -c prepare -a postgres -u postgresql://konga:konga@192.168.56.10:5432/konga
      #启动konga并设置数据库
      docker run -d  --name konga \
                    -p 1337:1337 \
                   -e "DB_ADAPTER=postgres" \
                   -e "DB_HOST=192.168.56.10" \
                   -e "DB_PORT=5432" \
                   -e "DB_USER=konga" \
                  -e "DB_PASSWORD=konga" \
                   -e "DB_DATABASE=konga" \
                   -e "KONGA_HOOK_TIMEOUT=120000" \
                   -e "NODE_ENV=production" \
                   pantsel/konga
      
  • Konga界面,http://192.168.56.10:1337/register
    API网关Kong 简介以及安装教程_第1张图片
    API网关Kong 简介以及安装教程_第2张图片

SERVICES

服务:在kong网关中生成的服务/接口

ROUTES

路由:kong网关服务/接口 映射成服务器地址

CONSUMERS

消费者:apiKey 配置特定消费者调用某些固定的接口

PLUGINS

插件:插件化,增加功能,支持二次开发

UPSTREAMS

上游:服务上游,当kong service 配置host是自定义域名时,可进行解析成服务器地址

Konga请求访问

访问konga配置好的接口:http://kong服务ip:8000/{uri}

  • http://192.168.56.10:8000/user/1

你可能感兴趣的:(API网关,API网关,Kong,Konga,Docker)